OleDbCommand and Unicode Char
本文关键字:Char Unicode and OleDbCommand | 更新日期: 2023-09-27 18:10:44
我有一个使用OleDbCommand运行大量查询的应用程序。每个查询都是纯SQL文本,该命令不使用参数。
现在,应用程序应该支持中文字符,我不想通过在字符串前面添加N字符来更改每个查询。
我正在尝试做这样的事情,但它不工作:
OleDbCommand command = new OleDbCommand("?", connect);
command.CommandType = CommandType.Text;
command.Parameters.AddWithValue("query", qry);
OleDbDataAdapter da = new OleDbDataAdapter(command);
其中qry是要执行的查询,每个字符串前面没有N字符。
我真的不想改变每一个查询,这将是一个烂摊子。
你有解决办法吗?
您将需要设置参数的数据类型,要么使用Add重载之一,要么使用new创建参数,设置属性,然后将其添加到集合中。
下面是OleDb数据类型:
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbtype.aspxVarWChar是unicode
如果您正在使用SqlServer,那么您可能希望使用本机驱动程序,以便您可以获得Sql数据类型,它具有更准确的匹配。
如果你想要跨数据库兼容,那么你可以往相反的方向走,使用System.Data.Common数据类型,DbType。XXX, ref http://msdn.microsoft.com/en-us/library/system.data.dbtype.aspx(或ODBC和它的类型枚举,因为微软说他们正在逐步淘汰OleDb作为一种支持ODBC的技术)