1

有人可以告诉我这个命令有什么问题吗?我得到一个错误。我使用 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);
4

3 回答 3

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 + "'";
于 2013-05-04T13:33:16.560 回答
3

您需要将通配符直接添加到您的参数值中,而不是在参数占位符之前的sql命令文本中(顺便尝试使用参数前缀)

  string comText = "select * from instructor where Instructor_email like @instemail";

所以你的命令参数应该是

  com.Parameters.Add("@instemail", MySqlDbType.VarChar, 200).Value = "%" + instemail;
于 2013-05-04T13:33:51.280 回答
0

您只需要使用单引号,例如;

string comText = "select * from instructor where Instructor_email like @instemail";
于 2013-05-04T13:34:21.580 回答