当我从C发送十进制值时,例如:5.54
当我执行查询时,我可以看到我的变量表示为5,54
有谁知道如何得到点而不是逗号吗?
这是我的代码:
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();
}
最佳答案
我完全同意其他的建议。至于另一个关于逗号或点的问题,则取决于当前的区域性。要获得正确的格式,您必须使用ToString,providing Culture.InvariantCulture as the second parameter。这将使用小数点分隔符。
但是,我坚持认为,另一个答案是非常好的建议:使用DbParameters。我加上:传递C#中保存的值,而不是将其转换为字符串。它将由ADO.NET提供程序正确处理。也就是说,如果您必须传递一个float
变量,请在不转换为string
的情况下传递它,但按原样传递为一个float
值。
关于c# - mysql不接受正确格式的十进制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10521898/