如何解决 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】:

您正在混合两个查询 SelectInsert

选择

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 子句中的这个语法错误?的主要内容,如果未能解决你的问题,请参考以下文章

报错from 子句语法错误 解决方法

如何解决 MySQL 错误“您不能在 FROM 子句中指定目标表 X 进行更新”? [复制]

使用 FROM 子句中的子查询进行联接操作中的 SQL 语法错误

访问中的 from 子句中的语法错误

Access 2003 SQL:from 子句中的语法错误

FROM 子句访问中的语法错误