首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Mysql cultureinfo.invariantculture

C# Mysql cultureinfo.invariantculture
EN

Stack Overflow用户
提问于 2018-04-16 14:54:28
回答 1查看 303关注 0票数 1

我的插入请求中有一个双值。在这个双值中,我将逗号转换为一个点,当我在MySqlCommand规则中创建类似于MySQL的规则时,它有12.5而不是12,5。但是,我的字符串将我的点改为逗号,用逗号发送插入请求,并触发异常。为什么MySqlCommand要创建一个12,5而不是12.5的字符串?

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-16 15:04:27

你想要的是参数

代码语言:javascript
复制
using(MySqlCommand cmd = new MySqlCommand {
    Connection = cnn,
    CommandText = "INSERT INTO `notification`(`Value`) VALUES (@value);"
})
{
    cmd.Parameters.AddWithValue("@value", value);
    cmd.ExecuteNonQuery();
}

或者用“Dapper”这样的工具:

代码语言:javascript
复制
conn.Execute("INSERT INTO `notification`(`Value`) VALUES (@value);", new { value });

参数的关键之一--除了避免SQL注入--是避免了文化和格式问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49860342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档