2

Web サービスからデータベースにデータを更新しようとしています。しかし、Web サービス ページで [invoke] をクリックすると、次のコマンドが実行されます:"command1.Connection.Open();" 次のエラー メッセージが表示されます: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

これは私のコードです:

  [WebMethod]
        public void UpdateParticulars(string Name, string CLass, string NRIC, float AmountSpent)
        {
            using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ncpConnectionString2"].ConnectionString))
            {
                SqlCommand command1 = new SqlCommand("UPDATE Student set Name=@Name, Class=@CLass,StallNo=@StallNo,AmountSpent=@AmountSpent WHERE NRIC = '" + NRIC + "'");

                command1.Parameters.AddWithValue("@Name", Name);
                command1.Parameters.AddWithValue("@Class", CLass);
                command1.Parameters.AddWithValue("@NRIC", NRIC);
                command1.Parameters.AddWithValue("@AmountSpent", AmountSpent);

                command1.Connection.Open();
                command1.ExecuteNonQuery();
            }
        }
4

3 に答える 3

8

SqlConnectionas引数をSqlCommandコンストラクターに渡します。

SqlCommand command1 = new SqlCommand(query, conn);

また、クエリを完全にパラメータ化されるように変更します (@StallNo パラメータがありません)。

"UPDATE Student set Name=@Name, Class=@CLass,StallNo=@StallNo,AmountSpent=@AmountSpent WHERE NRIC = @NRIC"

command1.Parameters.AddWithValue("@Name", Name);
command1.Parameters.AddWithValue("@Class", CLass);
command1.Parameters.AddWithValue("@NRIC", NRIC);
command1.Parameters.AddWithValue("@AmountSpent", AmountSpent);
command1.Parameters.AddWithValue("@StallNo", ""); //missing parameter
于 2013-07-26T07:04:02.283 に答える
0

command1.Connection=conn を使用します。conn.Open();

ExecuteNonQuery()実行前

于 2013-07-26T07:15:54.630 に答える
0

この行を追加するだけです

conn.open();

それ以外の

command1.Connection.Open();
于 2013-07-26T07:17:53.180 に答える