【发布时间】:2022-01-11 22:35:55
【问题描述】:
我正在尝试制作一个程序,从 MySQL 数据库中搜索数据并使用 Text Change 事件在文本框中显示值。
到目前为止,这是我的代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
string sqlstring = "database = db_phonebook; user = root; password = ''; server = 'localhost'; SSL Mode = None";
MySqlConnection mysqlcon = new MySqlConnection(sqlstring);
MySqlCommand mysqlcom;
MySqlDataReader mdr;
mysqlcon.Open();
string selectquery = "SELECT * FROM 'tbl_phonebook' WHERE CID =" + cid.Text;
mysqlcom = new MySqlCommand(selectquery, mysqlcon);
mdr = mysqlcom.ExecuteReader();
if (mdr.Read())
{
name.Text = mdr.GetString("Name");
address.Text = mdr.GetString("Address");
contact.Text = mdr.GetString("Contact_Number");
email.Text = mdr.GetString("Email_Address");
}
else
{
MessageBox.Show("Record Not Found!");
}
mysqlcon.Close();
}
但是错误提示 MySql.Data.MySqlClient.MySqlException: 'You have an error in your SQL syntax;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“tbl_phonebook”WHERE CID =' 附近使用的正确语法
知道如何解决这个问题吗?
【问题讨论】:
-
您想要反引号(tab 键上方的键)而不是单引号。您也真的不想直接将任意文本框输入直接发送到数据库。对于只有一点知识的人来说,使用它来执行诸如删除数据库中的所有表之类的事情是微不足道的。
-
这样查询 "SELECT * FROM 'tbl_phonebook' WHERE CID ="'+cid.Text+'";
-
@SANDEEP Noooo,这在至少两种不同的方面仍然是错误的,可能是三种。