我正在检索我的一个列表值并将其存储在Label中。将它存储在Label中后,我会将Label转发到另一个页面。但是,我要检索的值必须根据用户单击的内容。例如,用户单击我的网页中的第二个产品。因此,第二个产品的名称必须是会话到下一页。
我的问题是我设法检索了值,但不是根据用户点击的内容。我的Label的输出结果是所有产品名称,这不是我想要的。我哪里出错?
这是我的.cs代码:
string strConnectionString = ConfigurationManager.ConnectionStrings["PRODUCTSConnectionString"].ConnectionString;
SqlConnection myConnect = new SqlConnection(strConnectionString);
string strCommandText = "SELECT productName from Products";
SqlCommand cmd = new SqlCommand(strCommandText, myConnect);
myConnect.Open();
SqlDataReader reader = cmd.ExecuteReader();
Label1.Text = "";
while (reader.Read())
{
Label1.Text += reader["productName"].ToString() + "<br/>";
}
reader.Close();
myConnect.Close();
答案 0 :(得分:1)
您希望捕获用户选择的产品的唯一标识符(例如,您的主键),然后将WHERE子句添加到过滤该产品ID的SELECT语句中。目前,您的SELECT语句正在检索表中所有产品的产品名称。
答案 1 :(得分:0)
如果您需要数据库中的一种产品,可以将while
更改为if
string strCommandText = "SELECT productName from Products WHERE productID=@ProductID";
SqlCommand cmd = new SqlCommand(strCommandText, myConnect);
cmd.Parameters.AddWithValues("@ProductID", productID);
...
if(reader.Read())
{
//Label1.Text += reader["productName"].ToString();
Label1.Text = reader["productName"].ToString();
}
但我认为ProductID应该是唯一的