将varchar转换为char?如何修复错误

时间:2011-02-10 17:51:20

标签: c# sql

当我想将DRMKOD转换为char?

时,我收到此错误

[varchar(1)coloumn]是sql表中“DRMKOD”列的类型。

  

字符串必须是一个字符   长。在   System.Convert.ToChar(字符串值,   IFormatProvider提供商)   System.String.System.IConvertible.ToChar(的IFormatProvider   提供者)   System.Convert.ToChar(对象值)

 entity.DrmKod = Convert.ToChar(dt.Rows[i]["DRMKOD"]);

 public char DrmKod
        {
            get { return _DrmKod; }
            set { _DrmKod = value; }
        }

3 个答案:

答案 0 :(得分:3)

这两种类型不兼容。 varchar是一个字符串,char是一个字符。

将结果转换为字符串,然后使用str[0]获取第一个字符(假设字符串甚至包含任何字符且不为空!)。

答案 1 :(得分:2)

dt.Rows [i] [“DRMKOD”]的值是多少?我只能认为它是空的或空的。

答案 2 :(得分:0)

VARCHAR(1)意味着它可以是NULL或String.Empty。

if (dt.Rows[i].IsNull("DRMKOD") || (dt.Rows[i]["DRMKOD"] == String.Empty))
    entity.DrmKod = ' '
else
    entity.DrmKod = Convert.ToChar(dt.Rows[i]["DRMKOD"]);