参数查询,parameter赋空值问题.which was not supplied.

lucky313 2010-07-19 11:30:58

insert into xx(xx,xx,xx,xx,...)values(@xx,@xx,@xx,...)
SqlParameter[] parameters = {
new SqlParameter("@ProductName", SqlDbType.NVarChar,250),
new SqlParameter("@CategoryID", SqlDbType.Int,4),
new SqlParameter("@Pictures", SqlDbType.NVarChar,500),
new SqlParameter("@Description", SqlDbType.Text),
new SqlParameter("@Price", SqlDbType.Decimal,9),
new SqlParameter("@Stock", SqlDbType.Int),
new SqlParameter("@Warrant", SqlDbType.SmallInt),
new SqlParameter("@AvailabilityDate", SqlDbType.DateTime),
new SqlParameter("@SaleItem", SqlDbType.Bit),
new SqlParameter("@SalePrice", SqlDbType.Decimal),
new SqlParameter("@GiftWrapping", SqlDbType.Bit),
new SqlParameter("@GiftPrice", SqlDbType.Decimal,9),
new SqlParameter("@Materials", SqlDbType.NVarChar,250),
new SqlParameter("@Color", SqlDbType.NVarChar,250),
new SqlParameter("@Weight", SqlDbType.NVarChar,250),
new SqlParameter("@Dimensions", SqlDbType.NVarChar,250),
new SqlParameter("@AlsoPurchased", SqlDbType.NVarChar,250),
new SqlParameter("@Keywords", SqlDbType.NVarChar,200),
new SqlParameter("@IsPerItem", SqlDbType.Bit),
new SqlParameter("@StandardPrice", SqlDbType.Decimal),
new SqlParameter("@StandardDays", SqlDbType.SmallInt),
new SqlParameter("@ExpressPrice", SqlDbType.Decimal),
new SqlParameter("@ExpressDays", SqlDbType.SmallInt),
new SqlParameter("@NextDayPrice", SqlDbType.Decimal),
new SqlParameter("@NextDayDays", SqlDbType.SmallInt),
new SqlParameter("@StoreID",SqlDbType.Int,4)
};
parameters[0].Value = model.ProductName;
parameters[1].Value = model.CategoryID;
parameters[2].Value = model.Pictures;
parameters[3].Value = model.Description;
parameters[4].Value = model.Price;
parameters[5].Value = model.Stock;
parameters[6].Value = model.Warrant;
parameters[7].Value = model.AvailabilityDate;
parameters[8].Value = model.SaleItem;
parameters[9].Value = model.SalePrice;
parameters[10].Value = model.GiftWrapping;
parameters[11].Value = model.GiftPrice;
parameters[12].Value = model.Materials;
parameters[13].Value = model.Color;
parameters[14].Value = model.Weight;
parameters[15].Value = model.Dimensions;
parameters[16].Value = model.AlsoPurchased;
parameters[17].Value = model.Keywords;
parameters[18].Value = model.IsPerItem;
parameters[19].Value = model.StandardPrice;
parameters[20].Value = model.StandardDays;
parameters[21].Value = model.ExpressPrice;
parameters[22].Value = model.ExpressDays;
parameters[23].Value = model.NextDayPrice;
parameters[24].Value = model.NextDayDays;
parameters[25].Value = model.StoreID;


给datetime,SmallInt,Decimal包含这三类型的参数赋空值,添加都会报错。DB 字段为可空

model对属性的类型声明也是对应的。public int? Warrant

错误提示:Parameterized Query '(@ProductName nvarchar(250),@CategoryID int,@Pictures nvarchar(5' expects parameter @Warrant, which was not supplied.

挺急的,麻烦了解的哥们指点指点。thks
...全文
1451 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucky313 2010-07-19
  • 打赏
  • 举报
回复
谢谢大家,

用了这么久sqlparameter都没用过后面的参数,忘了去看了。^_^ 谢谢指教

给parameter赋DBNULL有试过,编译过不去,“无法确定条件表达式的类型,因为“System.DBNull”和“System.DateTime?”之间没有隐式转换”

谢谢大家,回复都给分。哈
msnadair 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xierfly 的回复:]
你声明的时候是不允许为空的,当然不能直接赋予空了
[/Quote]

UP
zjx198934 2010-07-19
  • 打赏
  • 举报
回复
判断一下是否为空 为空时添加Null.Value。
newdigitime 2010-07-19
  • 打赏
  • 举报
回复
用DBNull.Value
xierfly 2010-07-19
  • 打赏
  • 举报
回复
你声明的时候是不允许为空的,当然不能直接赋予空了
louti 2010-07-19
  • 打赏
  • 举报
回复
赋值null试试

62,241

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧