为了账号安全,请及时绑定邮箱和手机立即绑定

C#Mysql cultureinfo.invariantculture

C#Mysql cultureinfo.invariantculture

C#
萧十郎 2021-04-06 13:15:12
我的插入请求中有一个双精度值。我像在MySQL规则中那样创建MySqlCommand时,将逗号更改为该双精度值中的点,并具有12.5而不是12,5。但是我的字符串将点更改为逗号,并用逗号发送插入请求,并引发了异常。为什么MySqlCommand创建一个包含12,5而不是12.5的字符串?string valueCapteur = "12,5";valueCapteur = valueCapteur.Replace(',', '.');double.TryParse(valueCapteur, NumberStyles.Any, CultureInfo.InvariantCulture, out double value);MySqlCommand cmd = new MySqlCommand{    Connection = cnn,    CommandText = "INSERT INTO `notification`(`Value`) VALUES (" + value + ");"};cmd.ExecuteNonQuery();当我调试值= 12.5但在我的cmd.CommandText值= 12,5中时
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您想要的是参数:


using(MySqlCommand cmd = new MySqlCommand {

    Connection = cnn,

    CommandText = "INSERT INTO `notification`(`Value`) VALUES (@value);"

})

{

    cmd.Parameters.AddWithValue("@value", value);

    cmd.ExecuteNonQuery();

}

或使用“ Dapper”之类的工具:


conn.Execute("INSERT INTO `notification`(`Value`) VALUES (@value);", new { value });

除了避免SQL注入外,参数的关键点之一是它避免了区域性和格式问题。


查看完整回答
反对 回复 2021-04-24
  • 1 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信