1

user_Id と regNo のフィールドを持つこのテーブル Profile があり、データの挿入に進む前に、id と email が既に存在するかどうかを最初に確認したいと思います。

私のコードでは、1 つの行 (id または reg 番号) のみを検証できますが、そのうちの 2 つを検証しようとすると、「スカラー変数 @userid を宣言する必要があります」というエラーが表示されます。私の選択が間違っているのか、それとも私のコードに何かがあるのか​​ わかりません。

SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True");
    con.Open();
    SqlCommand cmdd = new SqlCommand("select * from Profile where user_Id = @userid AND RegNo = @reg", con);

    SqlParameter param = new SqlParameter();
    //SqlParameter param1 = new SqlParameter();
    param.ParameterName = "@userid";
    param.ParameterName = "@reg";

    param.Value = txtid.Text;
    param.Value = txtregNo.Text;

    cmdd.Parameters.Add(param);
    //cmdd.Parameters.Add(param1);


    SqlDataReader reader = cmdd.ExecuteReader();


        if (reader.HasRows)
        {
            MessageBox("User Id/Registry Number already exists");
        }


        else
        {
            SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True");
            SqlCommand cmd = new SqlCommand("qry", con);
            cmd.CommandType = System.Data.CommandType.Text;

            cmd.Parameters.AddWithValue("@id", txtid.Text);
            cmd.Parameters.AddWithValue("@regno", txtregNo.Text);
            cmd.Parameters.AddWithValue("@name", txtname.Text);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            con.Open();
            cmd.ExecuteNonQuery();
            MessageBox("successfully saved!");

        }

私はasp.netでC#を使用しています。

4

4 に答える 4