C#Mysql cultureinfo.invariantculture

我的插入请求中有一个双精度值。我像在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中时


萧十郎
浏览 183回答 1
1回答

扬帆大鱼

您想要的是参数: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注入外,参数的关键点之一是它避免了区域性和格式问题。
打开App,查看更多内容
随时随地看视频慕课网APP