【解決方法】データグリッドビューの列と同一のデータベーステーブルデータを削除するにはどうすればよいですか


こんにちは

私のプロジェクトには、ユーザーが手動で入力する 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

それとは別に、あなたの削除SQLが間違っている 問題ありません。 しかし、最後の行の削除に成功したのは不思議です;)

削除ステートメントは次のようにする必要があります。から

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

コメント

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