上下文:我负责运行一个用.NET编写的服务。专有应用。它使用SQL Server数据库。它以本地计算机中Administrators组的用户成员身份运行。在我将机器添加到域之前,它工作得很好。
因此,我将该计算机添加到一个域(Win 2003)中,并将用户更改为Power Users组的成员,现在,
问题:它试图执行的一些SQL语句在西班牙语本地化中是“神奇的”(其中,分隔浮点数而不是.),导致错误。
INSERT语句中的列数少于values子句中指定的值。values子句中的值数必须与INSERT语句中指定的列数匹配。在System.Data.SqlClient.SqlConnection.OnError(SqlException异常时,布尔型breakConnection)
机器中的操作系统和区域设置为英文。我问了应用程序的提供商,他说:
看起来像是在西班牙语环境下运行的代码和在英语环境下运行的SQL server代码的组合。因此SQL需要'15.28‘而不是'15,28’
在我看来,这在不同级别上都是错误的( SQL Server如何区分用于分隔参数的逗号和属于浮点数的逗号?)。
因此,代码似乎从某个地方抓取了西班牙语区域设置,我不知道它是以用户身份运行的,还是在其他地方(可能是全局策略?)。但问题是
哪些地方的本地化是以机器/用户/域为基础定义的?
我不知道所有的地方我必须寻找罪魁祸首,所以请帮我找到它!
https://stackoverflow.com/questions/59013
复制相似问题