检查记录列是否有一些特殊值

时间:2012-11-02 20:29:24

标签: c# asp.net sql

我想查看一些字段是否有一些唯一值 - 例如,我想检查表中的field1,field2是否为" YES"。如果两者都有"是"然后我想调用一些函数,但如果其中一个函数有" No"价值然后我想调用一些其他功能。请注意,在我的select语句中,我从查询字符串中传递了一个ID。我怎么能这样做?

protected void Check_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e) {
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
    SqlDataAdapter da = new SqlDataAdapter("SELECT ID, Field1, Field2 from MyTabel WHERE ID = '" + Request.QueryString["ID"] + "'", con);
    DataTable dt = new DataTable();
    da.Fill(dt);
}

1 个答案:

答案 0 :(得分:4)

如果确定是否某个特定的标准存在是否只是给定记录,那么我建议您在数据库端进行此检查,然后使用ExecuteScalar获得结果:

using(SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString))
{
    using(SqlCommand cmd = new SqlCommand("SELECT count(*) from MyTabel WHERE ID =@ID And (Field1='Yes' And Field2='Yes')" , con))
    {
        cmd.parameters.Add("@ID",Request.QueryString["ID"]);

        con.open();

        int result = cmd.ExecuteScalar();

        con.close();

        if(result == 1)
            // condition exists
            // so call success function
        else
            // call failure function
    }
}

更新

这可能与问题没有直接关系,但要从detailsView获取记录ID,您需要完成两个步骤:

  1. datakeynames的{​​{1}}属性设置为表格主键名称的名称 - 在本例中为detailsView

    ID
  2. 现在您可以通过

    访问所选的ID
    <asp:detailsview datakeynames="ID"
    
  3. 点击此处查看更多information