我们忙着用MS SQL DB运行c#asp网站。
某些列已分配了十进制类型(18,2)。
SqlCommand cmd = new SqlCommand("select * from TABLE", conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write("Amount : " + dr["DEC_COLUMN"].ToString());
}
在我的同事localhost上,当他做一个简单的选择时,值会回到10.01 10.02 15.03 在我的本地主机上它回来了 10,01 10,02 15,03
我的同事和我们的Dev Server具有相同的值。 除了字符串替换hacks之外,我想让我的设置相同,以便我的值也返回点不是逗号。
我检查了我的PC上的区域设置,它与Dev服务器完全相同。 我转储了我的本地数据库,并使用了Dev服务器的导出/导入向导,但仍然没有运气。
需要更改windows / .NET / SQL中的哪个设置才能使我的本地环境相同?
答案 0 :(得分:5)
但由于我的源代码副本与我的同事以及dev服务器的副本相同,所有这些都由SVN控制,它有什么不同?
因为源代码中未定义默认系统区域性。
我非常怀疑你真的想要以完全相同的格式编写回复,但你总是可以指定不变文化:
while (dr.Read())
{
decimal value = (decimal) dr["DEC_COLUMN"];
Response.Write("Amount : " + value.ToString(CultureInfo.InvariantCulture));
}