1

我想检查某些字段是否具有某些唯一值 - 例如,我想检查表中的 field1、field2 是否具有“YES”值。如果它们都具有“是”,那么我想调用某个函数,但如果其中一个具有“否”值,那么我想调用其他函数。请注意,在我的 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);
}
4

1 回答 1

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
    }
}

更新:

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

  1. 将 的datakeynames属性设置为detailsView表的主键名称 - 在本例中为ID.

    <asp:detailsview datakeynames="ID"
    
  2. 现在您可以通过以下方式访问选定的 ID

    int id = (int)detailsView.SelectedValue;
    

在这里查看更多信息

于 2012-11-02T20:46:51.313 回答