有人可以告诉我这个命令有什么问题吗?我收到一个错误。我使用c#和mysql数据库。
public static DataSet getInstructorListSearchEmail(string instemail)
{
DB.connectToDb();
DB.DBOpen();
DataSet ds = new DataSet();
try
{
string comText = "select * from instructor where Instructor_email like %instemail";
MySqlCommand com = new MySqlCommand(comText, DB.Conn);
com.Parameters.Add("instemail", MySqlDbType.VarChar, 200).Value = instemail;
MySqlDataAdapter adapter = new MySqlDataAdapter(com);
adapter.Fill(ds);
答案 0 :(得分:5)
现在看到你使用了一个cmd参数,你需要修改你的查询字符串以接受参数,方法是将它改为
string comText = "select * from instructor where Instructor_email like @instemail";
com.Parameters.AddWithValue("@instemail", "%" + instemail);
或者这也可以使用单引号并删除参数,但我认为使用参数更好。
string comText = "select * from instructor where Instructor_email like '%" + instemail + "'";
答案 1 :(得分:3)
您需要将通配符直接添加到参数值中,而不是在参数占位符之前的sql命令文本中添加(顺便尝试使用参数前缀)
string comText = "select * from instructor where Instructor_email like @instemail";
所以你的命令参数应该是
com.Parameters.Add("@instemail", MySqlDbType.VarChar, 200).Value = "%" + instemail;
答案 2 :(得分:0)
你只需要使用单引号,如;
string comText = "select * from instructor where Instructor_email like @instemail";