C# Mysql cultureinfo.invariantculture

标签 c# mysql cultureinfo

我的插入请求中有一个 double 值。我将此 double 值中的逗号更改为一个点,并且当我像在 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

最佳答案

你想要的是参数:

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 注入(inject)之外,参数的关键点之一是它避免了文化和格式问题。

关于C# Mysql cultureinfo.invariantculture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49860342/

相关文章:

c# - 函数不会返回任何内容

c# - 如何打印多页WPF?

c# - 我如何使用 Linq/Linq to Sql 来执行此操作?

c# - 如何使用 Azure SDK for .Net 获取服务主体属性

php - CKEditor 输出为 BBcode 格式而不是 HTML

即使 UICulture 是阿拉伯语,WPF 也使用英语文化资源

php - mysql消息系统-PHP MySQL的在线离线状态

mysql - 部署rails应用程序时的nginx错误消息

.net - 为什么 CultureInfo.NativeName 不总是大写?

c# - IValueConverter 在 Windows Phone 7 中获得错误的文化