将CHAR(1)SQL列转换为代码中的“char”时出错

时间:2014-09-19 19:23:14

标签: c# sql .net type-conversion

我从名为CHAR(1)的SQL Server 2000框Combo_Label列中进行选择 - 其中始终会有一个A .. Z字符。在测试期间,它会毫无问题地转换前70个左右的项目,但随后会遇到Invalid Cast Exception

这是问题:

char comboLabel = (char)formCombo.Rows[j]["Combo_Label"];

这是观察列表的屏幕截图,显示了可以评估的一些方法。

http://i.imgur.com/iaEBEDZ.png

有关为何发生这种情况的任何想法?

3 个答案:

答案 0 :(得分:2)

数据库和Db访问API没有char的概念。您的CHAR(1)已映射到string

可能是最明智的选择:

  string comboLabel = (string)formCombo.Rows[j]["Combo_Label"];

但如果你真的想要一个char

  char comboLabel = ((string)formCombo.Rows[j]["Combo_Label"])[0];

答案 1 :(得分:0)

该字段是一个字符串,您可以执行类似的操作,但还需要考虑hte字段是否为空或字符串

char comboLabel = ((string)formCombo.Rows[j]["Combo_Label"])[0];

答案 2 :(得分:0)

首先将其转换为字符串,然后获取第一个字符...

char comboLabel = formCombo.Rows[j]["Combo_Label"].ToString()[0];