我从名为CHAR(1)
的SQL Server 2000框Combo_Label
列中进行选择 - 其中始终会有一个A
.. Z
字符。在测试期间,它会毫无问题地转换前70个左右的项目,但随后会遇到Invalid Cast Exception
。
这是问题:
char comboLabel = (char)formCombo.Rows[j]["Combo_Label"];
这是观察列表的屏幕截图,显示了可以评估的一些方法。
有关为何发生这种情况的任何想法?
答案 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];