C# SqlParameter设置值为0数据库实际为null的原因

以前我也发现了这个问题,当时 我是想通过SqlParameter插入一个int数据到数据库,类似下面这样

 

1   MySqlParameter[] parameters = new MySqlParameter[]
2   {
3               new MySqlParameter("@order",0)
4   }

 

但是执行后,会发现数据库显示为null,当时没去细究原因,通过声明了一个变量来解决了。

1 int order = 0; 
2 
3 MySqlParameter[] parameters = new MySqlParameter[]
4   {
5               new MySqlParameter("@order",order)
6   }

 

今天又遇到了类似的问题

 后面查了一下资料,发现平常我们在使用SqlParameter时,使用最多的是通过下面的构造函数去创建

1 public SqlParameter (string parameterName, object value);

 

而第二个参数是object类型,所以当系统无法推断类型时,会将0设置成null,这也就是为什么在前面的解决办法中,声明一个变量就可以解决。

 

既然 知道了原因,我们通过下面的方式构造,就可以解决问题。

1  MySqlParameter[] parameters = new MySqlParameter[]
2  {
3              new MySqlParameter("@order",MySqlDbType.Int32){ Value = 0}
4  };

 

posted @   zhaotianff  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2024-01-23 Windows内核开发-[1]、配置开发环境
点击右上角即可分享
微信分享提示