以前我也发现了这个问题,当时 我是想通过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 };
[in, optional] lpWindowName
标签:MySqlParameter,parameters,C#,值为,SqlParameter,new,null,order From: https://www.cnblogs.com/zhaotianff/p/18687830