【发布时间】:2012-02-13 00:55:09
【问题描述】:
我在尝试通过带参数的查询插入某些字符时遇到问题。
当我运行以下查询(不涉及参数)时,一切正常。
string insertQuery = "insert into 'testschema'.texttypestestobject(columnshortstring,columnlongstring)values('¬','test')";
DB2Command myCommand = new DB2Command(insertQuery, conn);
myCommand.ExecuteNonQuery();
但是,如果我像下面这样运行查询,它会失败。
string insertQuery = "insert into 'testschema'.texttypestestobject(columnshortstring,columnlongstring)values(@p0,@p1')";
DB2Command myCommand = new DB2Command(insertQuery, conn);
myCommand.Parameters.Add(new DB2Parameter("@p0", "¬"));
myCommand.Parameters.Add(new DB2Parameter("@p1", "test"));
myCommand.ExecuteNonQuery();
错误是:
Executing Sql 'insert into 'testschema'.texttypestestobject(columnshortstring,columnlongstring)values(@p0,@p1)'
with parameters '{¬},{ test}' exception 'IBM.Data.DB2.DB2Exception (0x80004005):
ERROR [IX000] [IBM][IDS/NT64] Code-set conversion function failed due to illegal
sequence or invalid value.
已安装 Informix 服务器 11.70(64 位)和 Client SDK 3.50,并且工作正常。使用 en_US.utf8 或 cs_CZ.8859-2 创建数据库。
失败的字符之一是“¬”(Unicode 172)。
有人看到这个错误吗?可能是什么原因?是否需要对驱动程序进行一些额外的配置?
【问题讨论】: