如何解决 FROM 子句中的这个语法错误?
Posted
技术标签:
【中文标题】如何解决 FROM 子句中的这个语法错误?【英文标题】:How can resolve this syntax error in FROM clause? 【发布时间】:2015-07-21 12:25:02 【问题描述】:System.Data.OleDb.OleDbConnection bes = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\JAMES DEAN\Documents\aha.mdb;User Id=admin; Password=;;");
System.Data.DataTable pc = new System.Data.DataTable();
System.Data.OleDb.OleDbDataAdapter save = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM Info (Quantity, Unit, Account, Description , Amount, Total Amount, [Date]) VALUES '"+ textBox1.Text +"','" +textBox2.Text +
"','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5 + "','" + textBox6.Text+ "','" + dateTimePicker1.Value.ToString("MM/dd/yyyy") + "','" ,bes);
save.Fill(pc);
dataGridView1.DataSource = pc;
谢谢:D
System.Data.OleDb.OleDbCommand save = new System.Data.OleDb.OleDbCommand(
"Insert into Info (Quantity, Unit, Account, Description , Amount, Total Amount, Account Title, [Date]) VALUES '"
+ textBox1.Text +"','"
+textBox2.Text +"','"
+ textBox3.Text + "','"
+ textBox4.Text + "','"
+ textBox5 + "','"
+ textBox6.Text+ "','"
+ comboBox1.Text+"','"
+ dateTimePicker1.Value.ToString("MM/dd/yyyy") + "','" ,bes);
save.ExecuteNonQuery();
bes.Close();
这是我的代码,我仍然收到错误 TT
【问题讨论】:
天哪.. 请请始终使用parameterized queries。这种字符串连接对SQL Injection 攻击开放。 而且SELECT
没有VALUES
的语法。你到底想做什么?您想使用WHERE
来使用这些值过滤您的数据吗?您应该始终首先在您的数据库管理器中使用您的查询。并使用using
语句来处理您的数据库连接和适配器。
这是 select 和 insert 语句的邪恶合并吗?
请学习basic sql syntax first,你的完全无效。
如果你是为你的论文做这个,那么你需要学习这些东西。不要从 youtube 中获取它。
【参考方案1】:
您正在混合两个查询 Select
和 Insert
选择
SELECT Quantity, Unit, Account, Description , Amount, Total Amount, [Date] FROM Info
插入
Insert into Info (Quantity, Unit, Account, Description , Amount, Total Amount, [Date]) VALUES ...
还有 1. 列之间不能有空格。 2.请使用参数化查询,防止SQL注入。
【讨论】:
吹毛求疵。列可以有空格,它们只需要用括号括起来。以上是关于如何解决 FROM 子句中的这个语法错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 MySQL 错误“您不能在 FROM 子句中指定目标表 X 进行更新”? [复制]