这是我的代码:
OleDbCommand Cmd = new OleDbCommand(); Cmd.Connection = MyConn; Cmd.CommandText = "SELECT * FROM catalogue WHERE id = '" + questionid + "'"; OleDbDataReader read = Cmd.ExecuteReader(); int id = 0; while (read.Read()) { id = Convert.ToInt32(read["id"]); }
这是它给我的错误:
Line 27: Cmd.CommandText = "SELECT * FROM catalogue WHERE id = '" + questionid + "'"; Line 28: Line 29: OleDbDataReader read = Cmd.ExecuteReader(); // The error is here Line 30: Line 31: int id = 0;
我知道在Stack Overflow上还有另一个关于同一问题的问题,但它似乎没有解决我的问题(它可以解决你的问题,所以我放了一个链接).
请了解如何使用块来处理所有易处理文件,包括数据库连接,命令和阅读器.
您的代码容易受到sql注入攻击,您可能希望通过使用参数来修复它.
最后,我怀疑数据库中的id字段是整数类型,因此在值周围使用引号是错误的.但请阅读参数而不是修复它.无论如何,参数将摆脱这个问题.