我遇到了一个安装在几个客户站点工作的产品的问题,我认为这个问题与他们的数据库服务器上的Collat??ion设置有关.我的代码看起来像这样(我改变了表和变量名称,因为代码是专有的):using (SqlCommand insertCommand = ...
我遇到了一个安装在几个客户站点工作的产品的问题,我认为这个问题与他们的数据库服务器上的Collat??ion设置有关.我的代码看起来像这样(我改变了表和变量名称,因为代码是专有的):
using (SqlCommand insertCommand = dbConnection.CreateCommand())
{
insertCommand.CommandText = "INSERT INTO [myTable] ([valueOne] ,[valueTwo] ,[CreationDate]) VALUES (@valueTwo ,@valueTwo ,@creationDate);select IDENT_CURRENT('myTable');";
insertCommand.Parameters.AddWithValue("@valueOne", "Value One");
insertCommand.Parameters.AddWithValue("@valueTwo", "Value Two");
insertCommand.Parameters.AddWithValue("@CreationDate", CreationDate);
dbConnection.Open();
object result = insertCommand.ExecuteScalar();
dbConnection.Close();
}
这适用于大多数站点以及我们的开发和QA计算机,但在这一个站点上我们收到一个错误,上面写着“必须声明标量变量”@creationDate“.我看到的主要差异是该站点的排序规则值设置为SQL_Latin1_General_CP1_CS_AS我们的设置都是SQL_Latin1_General_CP1_CI_AS.我为我们的数据库更改了这个,但是服务器仍然设置为区分大小写的变体.这确实解决了我们使用不同的表的另一个问题(一个是表名,而不是参数名) ,但由于某种原因,它仍然是一个问题.有没有人有任何想法如何解决这个问题比通过和修复我们的代码库中的所有案例差异更快一点?
该站点使用的是SQL Server 2005,我们的代码是用C#和.NET 3.5编写的.
谢谢
-Hollis
解决方法:
服务器的排序规则控制着这些,这是设计的.
从BOL(强调我的):
The collation of an identifier depends on the level at which it is
defined. Identifiers of instance-level objects, such as logins and
database names, are assigned the default collation of the instance.
Identifiers of objects within a database, such as tables, views, and
column names, are assigned the default collation of the database.
Variables, GOTO labels, temporary stored procedures, and temporary
tables can be created when the connection context is associated with
one database and then referenced when the context has been switched to
another database. Therefore, the identifiers for variables, GOTO
labels, and temporary tables are in the default collation of the
instance.
本文标题为:通过C#查询时SQL Server 2005区分大小写
基础教程推荐
- 深入理解C#窗体关闭事件 2023-05-06
- C#实现单例模式的几种方法总结 2023-03-29
- Unity实现简单虚拟摇杆 2023-02-09
- C#基础知识之Partial的使用 2023-03-29
- Winform控件优化之圆角按钮2 2023-07-04
- C#实现简易的计算器 2023-04-15
- WPF利用ValueConverter实现值转换器 2023-07-18
- 一篇文章彻底搞清楚c#中的委托与事件 2023-01-27
- C#使用DirectX.DirectSound播放语音 2023-05-26
- Unity中的Tilemap流程分析 2023-04-22