无法根据用户单击检索productName

时间:2012-07-29 13:50:05

标签: c# asp.net sql

我正在检索我的一个列表值并将其存储在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();

2 个答案:

答案 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应该是唯一的