我的插入请求中有一个双值。在这个双值中,我将逗号转换为一个点,当我在MySqlCommand规则中创建类似于MySQL的规则时,它有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
发布于 2018-04-16 15:04:27
你想要的是参数
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注入--是避免了文化和格式问题。
https://stackoverflow.com/questions/49860342
复制相似问题