[ad_1]
こんにちは
私のプロジェクトには、ユーザーが手動で入力する 3 つの列を持つ datagridview と、100 レコードのデータベース テーブルがあります。
データベース テーブルから、datagridview の最初の列 (シリアル) のようなレコードを削除する必要があります。
シリアル | ロット | ロット | 日にち
89985 | T2_4 | 2023-02-03
89993 | T2_4 | 2023-02-03
90009 | T2_4 | 2023-02-03
90017 | T2_4 | 2023-02-03
90025 | T2_4 | 2023-02-03
以下のコードで、最後の (90025 | T2_4 | 2023-02-03) レコードのみを削除することができました
私が試したこと:
C#
<pre>for (int i = 0; i < dvgSeriiNoi.Rows.Count; i++) { SqlCommand sqlCmd = new SqlCommand("DELETE Articol WHERE Serial = @Serial", con); sqlCmd.Parameters.AddWithValue("@Serial", dvgSeriiNoi.Rows[i].Cells["Column1"].Value.ToString()); sqlCmd.ExecuteNonQuery(); }
解決策 1
削除ステートメントは次のようにする必要があります。から‘
DELETE FROM Articol WHERE Serial = @Serial"
お役に立てば幸いです。
[Edit0]
検証してびっくり。 少なくとも MSSQL は次のような削除ステートメントを受け入れます
DELETE <tableName> WHERE field = @param
少なくともドキュメントでは FROM がオプションであることを確認しています:削除 (Transact-SQL) – SQL Server | マイクロソフト ラーン[^]
解決策 2
あなたの削除構文が間違っていると思います。
1つのレコードをどのように削除したかはわかりません。
する必要があります:
(FROMを忘れました)
SQL
"DELETE from Articol WHERE Serial = @Serial"
そして、そうそう、テーブル名は Articol だと思います。
削除の構文は次のとおりです。
SQL
delete from <table-name> where
[ad_2]
コメント