【发布时间】:2020-12-28 20:19:15
【问题描述】:
有人可以解释为什么会这样吗?我正在尝试从 mysql 数据库中检索数据,但是会发生此错误,但是当我检索诸如 TeacherID 之类的整数值时,相同的代码可以正常工作。重新遍历非数字值时出现问题。
string connectionString = (@"Data Source=(LocalDB)\v11.0;AttachDbFilename=\myDB.mdf;Integrated Security=True");
string sql = "SELECT * FROM Teacher WHERE Subject = "+ TSubject.Text;
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection);
DataSet ds = new DataSet();
connection.Open();
dataadapter.Fill(ds, "Teacher");
connection.Close();
DataGridViewStudent.DataSource = ds;
DataGridViewStudent.DataMember = "Teacher";
我已经检查了拼写错误或类型,一切正常。所以有什么问题。
【问题讨论】:
-
使用占位符和“修复自身”的问题。使用这种构建 SQL 字符串的非常糟糕的方式会导致值没有被正确引用;这是“意外”注射。它还可能导致恶意注入。请不要遵循手动添加正确字符串引号的建议。
-
这能回答你的问题吗? How to give ADO.NET Parameters
-
esqew 它对我有用,谢谢
-
那不是 MySQL 数据库。
标签: c# sql-server-ce