我在 AS/400 DB2 表中有一个表:
SCDSC VARCHAR(120) CCSID 1208 DEFAULT NULL ,
CCSID 1208 意味着 UTF-8。
在我的 c# 代码中,这是有效的定义。
cmd.Parameters.Add("scdsc", OleDbType.VarChar , 120);
我也尝试过 VarWChar 类型:
cmd.Parameters.Add("scdsc", OleDbType.VarWChar , 120);
问题是该字段获得的最大值是 60 个字符。我不能让它在字段中使用 60 个字符的长度。
我觉得很奇怪,我需要将字段的真实长度加倍(我对所有字符串字段都这样做了)才能使其正常工作。
更新:正确的实现是将DB中的字段定义为nvarchar,将oledbtype定义为varWchar。