例如,当我从 C# 发送十进制值时:5.54 当我执行查询时,我可以看到我的变量表示为 5,54
有人知道如何获得 DOT 而不是 COMMA 吗?
这是我的代码:
using (MySqlConnection conn = new MySqlConnection(conn_string.ToString()))
using (MySqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = string.Format("INSERT Test (lat, long) VALUES ({0},{1})",
OSGconv.deciLat, OSGconv.deciLon);
conn.Open();
cmd.ExecuteNonQuery();
}
最佳答案
Anyone have an idea how to achieve to get DOT and not COMMA?
不要一开始就将值直接嵌入到您的 SQL 中。请改用参数化 SQL。请参阅 MySqlCommand.Parameters
的文档举个例子。您应该始终使用参数化查询:
- 他们将代码与数据分开
- 它们可以防止 SQL 注入(inject)攻击(这些数字不是问题,但考虑字符串...)
- 他们可以防止出现这样的转化问题
这里有一个更普遍的观点:不要执行不必要的转换。每次将数据从一种形式转换为另一种形式时,都有丢失数据或更糟的风险。如果您可以尽可能长时间地以最合适的方式保存数据,就可以最大程度地减少问题。
关于c# - mysql 不接受正确格式的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10521898/