6
嘗試通過帶參數的查詢插入某些字符時出現問題。插入某些Unicode字符時,參數化查詢失敗
當我運行以下查詢(不涉及參數),一切工作正常。
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位)和客戶端SDK 3.50安裝,並且工作正常。數據庫使用en_US.utf8或cs_CZ.8859-2創建。
其中一個失敗的字符是'¬'(Unicode 172)。
有沒有人看到這個錯誤?可能是什麼原因?是否需要在驅動程序上執行一些其他配置?