【解決方法】C# と SQL の WHERE 句を使用した SQL テーブル レコードの更新

プログラミングQA

[ad_1]

こんにちは、みんな、

MS SQL Server と C# を使用して Windows アプリケーションを開発しています。 アプリケーションでは、テキスト ボックスから取得するパラメータを使用して、既存のテーブル レコードを更新しようとしています。

SQLコマンドを実行すると、VALUESの構文エラーというエラーが発生しました。 構文にエラーが見つかりません。 WHERE句も使用しています。 以下はソースコードです。

私の何が間違っていたのか教えていただけますか?

ありがとう、
チランタカ

私が試したこと:

C#
private void btnUpdateData_Click(object sender, EventArgs e)
       {
               try
               {
                   SqlComm = new SqlCommand("UPDATE MyDataTable ('DataDesc', 'DataDate', 'DataQty') VALUES ('@DataDesc', '@DataDate', '@DataQty') WHERE DataID ='@DataID'", SqlConn);
                   SqlComm.Parameters.AddWithValue("@DataID", txtDataID.Text);
                   SqlComm.Parameters.AddWithValue("@DataDesc", txtDataDesc.Text);
                   SqlComm.Parameters.AddWithValue("@DataQty", int.Parse(txtDataQty.Text));
                   SqlComm.Parameters.AddWithValue("@DataDate", dtpDataDate.Value);
                   SqlComm.ExecuteNonQuery();

                   MessageBox.Show("Data updated!", "DB Connection With App.Config", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                   Clear();
                   DisableButtons();
               }
               catch (Exception ex)
               {
                   MessageBox.Show(ex.Message);
               }
           }

解決策 1

値を囲む一重引用符を削除します。

C#
SqlComm = new SqlCommand("UPDATE MyDataTable ('DataDesc', 'DataDate', 'DataQty') VALUES (@DataDesc, @DataDate, @DataQty) WHERE DataID = @DataID", SqlConn);

解決策 2

conn.Open();
SqlCommand cmd = new SqlCommand(“UPDATE myTable SET Name=””+txtName.Text +””, Age=””+txtAge.Text +””, Gender=””+txtGender.Text+””, City='”+ txtCity.Text+”‘ where Id= ‘”+txtID.Text+”‘ “、conn);
試す
{
cmd.ExecuteNonQuery();
MessageBox.Show(“正常に更新されました”, “更新されました”, MessageBoxButton.OK, MessageBoxImage.Information);
}
キャッチ (SqlException 例)
{
MessageBox.Show(例:メッセージ);
}

[ad_2]

コメント

タイトルとURLをコピーしました