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 };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2024-01-23 Windows内核开发-[1]、配置开发环境