繁体   English   中英

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

[英]SQL Query result: no value given for one or more required parameters

这是我的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 date_中是Data / Time,crd_typ是string,其余均为int。

(int访问order_id是关键)出了什么问题?

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

对于您的问题:

您说您的数据表中有一个DateTime和一个String 但是,您的查询具有一个DateTime和三个String参数。 因此,至少有两个int值作为String给出。 可能是个问题。 您可以通过使用参数化查询来解决此问题。

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

您会看到,您确实应该使用参数化查询。 许多问题将以这种方式解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM