2012-06-10 65 views
0

我正在写一个C#数据库winform应用程序,并且执行此查询时出现问题。它会抛出我这个错误:SQlite插入不工作

SQLite error 
near "SELECT": syntax error 

有人可以帮我吗?感谢您的任何答复或建议。

"INSERT into subor(idsubor, idpodfk, pnazovfk, datumpravop, podiel, podield, cislozLV, 
datumzaradenia, idmajetok) 
values (null, " + comboBox1.SelectedValue.ToString() + ", 
     '" + comboBox2.SelectedValue.ToString() + "', 
     '" + dateTimePicker1.Value.ToString("d. M. yyyy") + "', 
     '" + textBox2.Text + "', 
      " + podield.ToString("0.0000", System.Globalization.CultureInfo.InvariantCulture) + ", 
     '" + textBox4.Text + "', 
     '" + dateTimePicker2.Value.ToString("d. M. yyyy") + "', 
       SELECT IFNULL(a, '0') AS idmajetok 
       FROM (SELECT MAX(idmajetok) + 1 AS a FROM subor))"; 
+1

请向我们展示该连接字符串的实际实例。只有这样我们才能清楚地看到你正在使用的SQL语法。 –

+0

请把C#代码放在这里......并为你自己查询查询的值并在这里写下它。 –

+0

请请,了解SQL注入攻击! http://weblogs.asp.net/bleroy/archive/2004/08/18/please-please-please-learn-about-injection-attacks.aspx –

回答

2

你的C#字符串/ SQLite的SQL混合物还是显得有些混乱,但我看到一个可能的问题如下:

您使用的是SELECT声明以指示您的VALUES列表中的一个值。正如你可以看到in the syntax diagramSELECT声明必须括在括号中。

+0

我只是想通了,但无论如何感谢 –

0

我怀疑一些SQL语法问题,我对你的select语句做了一些修改。

请尝试:

string sqlInsert = "INSERT into subor(idsubor, idpodfk, pnazovfk, datumpravop, 
podiel,podield, cislozLV, datumzaradenia, idmajetok) values (null, '" + 
comboBox1.SelectedValue.ToString() + "','" + comboBox2.SelectedValue.ToString() + "','" + 
dateTimePicker1.Value.ToString("d.M.yyyy") + "','" + textBox2.Text + "','" + 
podield.ToString("0.0000", System.Globalization.CultureInfo.InvariantCulture) + ",'" + 
textBox4.Text + "','" + dateTimePicker2.Value.ToString("d.M.yyyy") + "','" + "SELECT 
IFNULL(a, '0') AS idmajetok FROM (SELECT MAX(idmajetok) + 1 AS a FROM subor))');";} 
+0

.... ,'“+ dateTimePicker2.Value.ToString(”dMyyyy“)+”','“+”选择 IFNULL(a,'0') AS idmajetok FROM(SELECT MAX(idmajetok)+ 1 AS a FROM subor))'';};} 我认为这将插入select语句到表中,不会解析它 –