在DetailView中使用选定的ID作为参数

时间:2012-11-05 16:22:59

标签: c# asp.net

如果我在表格中找到给定ID的3“是”,那么我正在发送电子邮件。因此,您可以看到下面的代码使用查询字符串作为参数并在我的select语句中使用它,但我想要做的是使用DetailView中的选定ID而不是查询字符串。以下是使用查询sting的代码:

protected void Check_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
    {


        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);

        SqlCommand cmd = new SqlCommand("SELECT count(*) from MyTable WHERE ID =@ID And (field1='Yes' And field2='Yes' And field3='Yes')", con);
        cmd.Parameters.Add("@ID", Request.QueryString["ID"]);
        cmd.Connection = con;
        con.Open();
        int result = (int)cmd.ExecuteScalar();

        if (result == 1)
        {
           send email...
        } 

以下是我修改并尝试使用DetailView ID的更新代码,但无法正常工作,我在这里做错了请帮助:

 protected void Check_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
    {

        string ID = Detailview1.Rows[0].Cells[1].Text;
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
        SqlCommand cmd = new SqlCommand("SELECT count(*) from MyTable WHERE ID =@ID And (field1='Yes' And field2='Yes' And field3='Yes')", con);
        cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ID;

        cmd.Connection = con;
        con.Open();
        int result =(int) cmd.ExecuteScalar();

        if (result == 1)
        {
        send email...
        }

1 个答案:

答案 0 :(得分:0)

在大多数情况下,看起来你总是看着同一行的标题。

string ID = Detailview1.Rows[0].Cells[1].Text;

如果您正确设置每件事,您可以使用e获取ID,而不是这样,您应该使用e.Keys等事件的参数。您可以在调试模式下检查它的值。