0

Mysql と C# を使用して、「インデックス」と呼ばれる列で行を削除しようとしています。int 固有の自動インクリメントです。

SQL 文字列を executequery に渡したい (string sql = "DELETE FROM Accounts WHERE index = '123'";)

そして、行1、または私が渡した行を削除します。

' なしでも試してみました。"DELETE FROM Accounts WHERE index = 123";

列を文字列値に変更すると機能します。インデックスではなく CRN のように。Index は int で、CRN は文字列です。しかし、C# で何かを渡そうとすると、SQL 接続に値を文字列としてしか渡すことができません。したがって、文字列のこの部分が数値であることを示すために、渡す値に対して何かしなければならないことがあると思います。

何かのようなもの

executequery (string sql = "DELETE FROM Accounts_NWACC WHERE index = '#1'";)

4

2 に答える 2

4

Indexは予約語です。次のようにしてみてください。

DELETE FROM Accounts WHERE `index` = 123

この種の競合を避けるために、列名に予約語を使用しないようにすることをお勧めします。ほとんどの人は、代わりに次のように呼びますid

これらはバッククォートであることに注意してください (ほとんどのキーボードでは、 の上TABと左のキー1で、 と同じキーにあります~)

于 2013-06-27T12:43:22.163 に答える
0

まず、executequery を executeUpdate に変更します

executeUpdate("DELETE FROM Accounts WHERE index ='123'");
于 2013-06-27T12:47:48.777 に答える