我想知道這段代碼有什麼問題。我正在使用SQLReportDataSource.SelectParameters.Add("@profileName", User.Identity.Name);
將參數添加到ASPX頁面中的SQL Data Source
。它使用User.Identity.Name
來抓取當前登錄的用戶並將該值傳遞給ASPX SQL數據源,但DropDownList
未顯示任何值,也沒有顯示任何錯誤。這甚至是從基於ASPX的數據源指定參數的正確方法嗎?DropDownList不顯示數據綁定值
即使當我修改SQLReportDataSource.SelectParameters
以將值硬編碼爲我知道的事實存在並確實產生了我通過在SSMS中輸入SELECT查詢來測試的結果時,它不返回任何內容。例如:
string name = "name";
SQLReportDataSource.SelectParameters.Add("@profileName", name);
我也嘗試從SqlDataReader
抓取值,但同樣的事情。我哪裏錯了?
ASPX
<asp:SqlDataSource ID="SQLReportDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:SFGSConnectionString1 %>" SelectCommand="SELECT [profileID], [profileName] FROM [vw_profile] WHERE [email protected]">
<SelectParameters>
<asp:Parameter Name="@profileName" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:DropDownList ID="chooseProfile" runat="server" DataSourceID="SQLReportDataSource" DataTextField="profileName" DataValueField="profileID" />
後面的代碼
SQLReportDataSource.SelectParameters.Add("@profileName", User.Identity.Name);
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SFGSConnectionString1"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM vw_reports WHERE [email protected]", conn);
cmd.Parameters.AddWithValue("@currentUser", User.Identity.Name);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
string memberID = reader["memberID"].ToString();
int reportNum = Convert.ToInt32(reader["reportNumber"]);
reportNum++;
reportNumber.Text = reportNum.ToString();
}
reader.Close();
conn.Close();
爲什麼我會陷入低谷?!上帝這個地方有時候會讓我很難過。有一些很棒的社區成員,但遺憾的是還有更多的douchebags。 – Trido