2011-02-10 64 views
2

當我想將DRMKOD轉換爲char時,我在下面得到這個錯誤?將varchar轉換爲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; } 
     } 

回答

2

dt.Rows [i] [「DRMKOD」]的值是多少?我只能認爲它是空的或空的。

3

這兩種類型不兼容。 varchar是一個字符串,char是一個單個字符。

將結果轉換爲字符串,然後使用str[0]獲取第一個字符(假定字符串甚至包含任何字符並且不爲null!)。

+2

field is varchar(1)。請閱讀問題 – RichardTheKiwi 2011-02-10 18:00:42

+1

將結果加載到字符串中並檢查它?這可能是一個空字符串。以及爲什麼你使用VARCHAR如果它總是1個字符? – 2011-02-10 18:03:46

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"]);