2015-09-25 44 views
0

所有这一切都在我的客户端的同一台服务器上。ADO.net SQL Server谜案与大小写敏感

我有一个数据库,比方说我在SQL Server中将它称为MYDATABASE

我有两个完全相同的ASP.Net Web应用程序,一个只是另一个的副本,其中有一些修改用于测试,并将取代另一个。

除了执行查询的一个地方以外的所有东西都可以工作。该查询具有小型大写数据库的名称。 Web应用程序1执行罚款,Web App的2抛出一个异常

无效对象名MyDatabase的...

,因为它是一个第三方的DLL我不能修改查询。

+0

在同一个版本的.NET的同时运行Web应用程序? –

+0

好问题,我会检查一次,我与客户达成协议。 – jsoques

回答

1

您需要检查并且可能会修改SQL Server排序规则。排序规则规定了如何对字符串数据进行排序和比较的规则。

可能是您的服务器不具有相同的整理值。

首先,运行此命令

SELECT SERVERPROPERTY(N'Collation') 

结果字符串必须包含'CI' 为“不区分大小写”也许 'CS' 为 “区分大小写”

在这里找到了一篇文章,知道你的排序规则,以及如何改变这种状况:https://www.mssqltips.com/sqlservertip/2901/how-to-change-server-level-collation-for-a-sql-server-instance/

+0

奇怪的是,这两个ASP.net应用程序运行在同一台服务器上。他们正在查询同一台服务器。反正我会检查。谢谢。 – jsoques

+0

其中一个应用程序可能具有与数据库相匹配的魔术字符串,或者正在寻找变化。另一个应用程序也可能使用类似于LINQ的对象,所以它在内存中执行查询,然后应用.Net字符串比较规则。 –