2015-07-21 62 views
-3
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如何解决FROM子句中的这个语法错误?


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

+6

天啊..请**请**总是使用[参数化查询](http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/)。这种字符串连接对于[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)攻击是开放的。 –

+1

而'SELECT'没有'VALUES'的语法。你想要做什么?你想用WHERE来用这些值过滤数据吗?你应该总是先在你的数据库管理器中使用你的查询。并使用'using'语句来处理您的数据库连接和适配器。 –

+1

这是一个选择和插入语句的邪恶合并? – citywall

回答

0

你混合两个查询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注入。

+0

Nitpick。列可以有一个空格,它们只需要被括起来。 – LarsTech

相关问题