2010-04-23 135 views
1

我有一个名为SubMaster_Accounts的表,其中包含9个字段。我想在其中插入数据到一些领域,我想存储一些其他字段为NULL。我试图用查询字符串编写查询,当我插入所有字段的数据时,sql查询完美工作,但是当我将数据作为NULL插入某些字段时,它在插入命令中显示语法错误。我想插入为NULL的字段不是约束。c#oledb中的INSERT INTO语句中的语法错误?

我该怎么办?

这是我的查询字符串。

insert into SubMaster_Account ([SMcode], [MSname], [Sname], [Openbalrs], 
[Openbalrs1], [Openbalmet], [Openbalmet1], [Creditdays], [Sdesc]) 
values ('" + SMcode + "','" + MSname + "','" + Sname + "'," + 
Openbalrs + ",'" + Openbalrs1 + "'," + Openbalmet + ",'" + 
Openbalmet1 + "'," + Creditdays + ",'" + Sdesc + "') 
+0

接受答案,如果它为你工作 – 2010-07-31 05:01:33

回答

1

您应该更改查询以使用参数而不是内联文字。

使用您当前的方法,您可能会遇到SQL注入攻击(如果有来自用户的任何值)。

容易出现SQL语法错误,正如你经历过的,如果你尝试在它们中使用任何带有单引号的值,或者什么都没有。

这些问题消失了参数。

+0

谁继续教这些东西!?应当教授noobs如何从第1天开始使用参数化查询。 – 2010-04-23 05:46:19

+0

不幸的是,这是一个事实的人为现象,SQL通常在没有编程语言的情况下被教授,而当你使用编程语言时,必须编写SQL在一个字符串中,因此当你周围添加改变字符串的东西时,回到字符串连接是很自然的。 – 2010-04-23 05:52:17

相关问题