0

特定のIDのテーブルで3つの「はい」が見​​つかった場合は、メールを送信しています。ご覧のとおり、以下のコードはクエリ文字列をパラメータとして使用し、それをselectステートメントで使用していますが、私がやりたいのは、クエリ文字列の代わりにDetailViewで選択したIDを使用することです。query-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を使用しようとしたが、正しく機能しない更新されたコードです。ここで何が間違っているのでしょうか。plshelp:

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

1 に答える 1

0

ほとんどの場合、ヘッダーである同じ行を常に見ているようです。

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

これの代わりに、イベントのパラメータを使用する必要があります。eたとえば、すべてを正しく設定すると、e.Keys. デバッグモードで値を確認できます。

于 2012-11-05T16:31:09.613 に答える