2015-10-05 100 views
-1

我一直有这个错误你的SQL语法有错误;检查对应于你的MySQL服务器版本在1号线 使用附近的名像‘F’'我要过滤的数据正确的语法手册MySqlException您的SQL语法中有错误;

这是我的代码能有人帮我

MySqlConnection connection = new MySqlConnection(MyConnection); 
connection.Open(); 

DataTable dt = new DataTable(); 
MySqlDataAdapter da = new MySqlDataAdapter("Select * from new_order where Full Name like '" + textBox1.Text + "'", connection); 
da.Fill(dt); 
dataGridView1.DataSource = dt; 

connection.Close(); 
+3

首先要知道的是:您不应该像这样将值放入您的SQL中。使用参数化SQL,*立即*。 –

+0

如果*全名*确实是您的专栏名称,那么您可能应该用反引号将其附上,请参阅http://stackoverflow.com/questions/261455/using-backticks-around-field-names。 – Fasermaler

回答

0

如果“全名”列中有一个空格,它必须用引号包装以供SQL读取。

即“从NEW_ORDER选择*,其中‘全名’喜欢“” + textBox1.Text +“””

我没有测试过这一点,但它应该工作。

+0

它的工作原理,但现在的问题是,当我把一些东西放在textbox1 datagridview中的数据消失。 – ang

+0

@ang你在元素上使用数据绑定还是手动填充datagridview? – calderonmluis

+0

无论哪种方式,你应该可以在TextBox的退出时触发一个事件来运行查询并填充datagridview – calderonmluis

0

要使用空间,你有列名把它放在方括号:

"select * from new_order where [Full Name] like ..." 

而且从不将您的疑问这样的,它会让你容易受到SQL injection attacks。使用参数。

相关问题