请教关于decimal类型问题

lufeng4002 2009-12-10 12:26:03
请教个问题啊,数据表里有个字段是decimal类型的,我在前台页面插入数据,当对应项为空不填数据的时候,数据表里总是显示-1.00,而不是null
...全文
124 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liherun 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cuike519 的回复:]
数据库上有默认值?
[/Quote]程序里
wiki14 2009-12-10
  • 打赏
  • 举报
回复
是不是对应插入错了?检查时候有默认值?传递的时候用decimal类型。
cuike519 2009-12-10
  • 打赏
  • 举报
回复
数据库上有默认值?
liherun 2009-12-10
  • 打赏
  • 举报
回复
程序里也是decimal的?
有默认值吧
lufeng4002 2009-12-10
  • 打赏
  • 举报
回复
刚调试了下,如果前台页面不填的话,decimal volume = settings.Page.GetDecimal("VOLUME");

volume值为-1;
下面是我写的一判断语句,但是现在如果前台页面不填的话,执行插入操作,数据表里相应的字段显示为0,我想问一下,else部分怎么写,让插入数据表的时候显示为null.此字段是允许空的。
if (volume != -1)
{
info.VOLUME = volume;
}
else
{

}
  • 打赏
  • 举报
回复
// 跟踪断点【info.VOLUME = volume】,看一下取得的值是什么。
// 如果没有问题,加上sqlparameter的数据类型测试一下,也许可以达到你想要的逻辑处理。方式如下:
decimal xx;
xx = 0.03M;
string ww = string.Empty;

List<SqlParameter> parm = new List<SqlParameter>();
SqlParameter para1 = new SqlParameter("@parmName", SqlDbType.Decimal);
para1.Precision = 2;
para1.Scale = 2;
para1.Value = xx;
parm.Add(para1);
SqlParameter para2 = new SqlParameter("@parmName2", SqlDbType.VarChar);
para2.Value = ww;
parm.Add(para2);
SqlParameter para3 = new SqlParameter("@parmName3", SqlDbType.VarChar);
para3.Value = System.DBNull.Value;
parm.Add(para3);
// Good Luck
lufeng4002 2009-12-10
  • 打赏
  • 举报
回复
从前台页面接受的值VOLUME 我把它转换成了decimal
decimal volume = settings.Page.GetDecimal("VOLUME");
goodsInfo info = new goodsInfo();
info.VOLUME = volume;
然后我用insert into语句执行插入操作,
this.CommandText=“"insert into GOODS_GOODS(VOLUME) values @VOLUME"
if ((info.VOLUME).ToString() == "")
{
info.VOLUME = 0;
this.Parameters.AddWithValue("@VOLUME", info.VOLUME);
}


else
{
this.Parameters.AddWithValue("@VOLUME", info.VOLUME);
}
this.ExecuteNonQuery();
this.ClearParameters();

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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