我正在使用Mysql和C#,试图通过一个名为' index'的列删除一行。这是一个int唯一的自动增量。
我想将sql字符串传递给executequery(string sql =" DELETE FROM 账户WHERE index =' 123'&#34 ;;)
让它删除第1行,或者我传递的行。
我还试过没有' 。 " DELETE FROM Accounts WHERE index = 123&#34 ;;
当我将列更改为某个字符串值时,它可以正常工作。像CRN而不是索引。 Index是一个int,CRN是一个字符串。 但是当我尝试在C#中传递某些内容时,您只能将值作为字符串传递给sql连接。所以我想我可能要对我传递的值做些什么来表明字符串的这一部分是一个数字。
像
这样的东西executequery(string sql =" DELETE FROM Accounts_NWACC WHERE index = '#1'&#34 ;;)
答案 0 :(得分:3)
Index
是保留字。试试这样:
DELETE FROM Accounts WHERE `index` = 123
避免对列名使用保留字是一个好主意,以避免这些类型的冲突。大多数人会称之为id
。
请注意,这些是反引号(在大多数键盘上,它是 TAB 上方的键,而 1 左侧,与〜相同的键) )
答案 1 :(得分:0)
首先将executequery更改为executeUpdate
executeUpdate("DELETE FROM Accounts WHERE index ='123'");