SQL查询结果:没有为一个或多个必需参数指定值

时间:2016-05-04 12:18:47

标签: c# sql

这是我的SQL查询

    string SqlStr = string.Format("
insert into Sales(date_,tsale,order_id,quant,crd_typ,client_id)
    values(#{0}#,'{1}','{2}','{3}',{4},{5})", s.Date,s.Tsale,s.OrderId, s.Quant, s.CrdTyp, s.ClientId);
WinForm中的

date_是DateTime,crd_typ是字符串,其余的是int。

Access中的

是数据/时间,crd_typ是字符串,其余是int。

(int Access order_id是关键) 怎么了?

1 个答案:

答案 0 :(得分:2)

首先,您不应该使用String.Format构造查询,而是使用参数化查询来阻止SQL注入。

对于你的问题:

您说数据表中有一个DateTime和一个String。尽管如此,您的查询还是有一个DateTime和三个String参数。因此,至少有两个int值为String。可能是个问题。您可以使用参数化查询来解决此问题。

第二种可能是,你的字符串可能包含'个字符。因此,可以在查询完成之前停止查询解析。您可以使用参数化查询来阻止这种情况。

你知道,你应该使用参数化查询。许多问题都会以这种方式解决。