我有一个返回设置的功能:
public DataTable check_settings()
{
Data_access.Access_Layer Layer = new Data_access.Access_Layer();
Layer.Open();
DataTable table = new DataTable();
table = Layer.SelectData("check_settings", null);
Layer.Close();
return table;
}
此表返回一行: 结果选中或取消选中
我想要的是取这个结果并作为设置:
DataTable _table = new DataTable();
_table = Option.check_settings();
options.Capital.CheckState = (CheckState)_table.Rows[0][0];
options.MailConfirm.CheckState = (CheckState)_table.Rows[0][1];
options.Notifications.CheckState = (CheckState)_table.Rows[0][2];
然后我收到错误Invalid Cast
答案 0 :(得分:0)
在不知道表格中有哪些数据的情况下,无法真正了解正确的解决方案,但您可能需要类似
的内容options.Capital.CheckState = _table.Rows[0][0] ? CheckState.Checked : CheckState.Unchecked;
根据表格中的实际数据,比较只需要有意义。
答案 1 :(得分:0)
它作为布尔值工作
我将数据类型IN Sql从VarChar更改为BIT 在我的代码中:
我将 CheckState 更改为已检查
options.Capital.Checked = (Boolean)_table.Rows[0][0];
options.MailConfirm.Checked = (Boolean)_table.Rows[0][1];
options.Notifications.Checked = (Boolean)_table.Rows[0][2];
它完美无缺!