【发布时间】:2016-02-29 21:17:16
【问题描述】:
目前我的应用程序将从 SQL 数据库中加载用户可以选择的项目,然后他们可以使用复选框来选择哪些项目适用于自己,然后可以保存这些选择并退出窗口;这工作正常。
我需要让我的应用程序获取用户之前保存的选择,然后在网格填充了所有选项后选中相关框(因此只是显示他们的选择)。
到目前为止,我有以下代码:
private void LoadUserSelection()
{
using (SqlConnection conn = new SqlConnection(sys.gvConnectionString))
{
using (SqlCommand cmd = new SqlCommand(qry.SelectUsersSelections(), conn))
{
cmd.Parameters.AddWithValue("@SiteID", sys.gvSiteID);
using (SqlDataAdapter da = new SqlDataAdapter())
{
da.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
conn.Open();
da.Fill(dt);
conn.Close();
foreach (DataGridViewRow row in grdQueues.Rows)
{
foreach (DataRow dr in dt.Rows)
{
if (dr["ID"].ToString() == row.Cells["ID"].Value.ToString())
{
DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells[0];
chk.Value = 1;
}
}
}
}
}
}
}
}
希望这段代码有意义,它可以毫无问题地运行,但是即使代码确实命中了将复选框标记为 true 的部分,它也没有。
我已经为 chk.Value = 1
尝试了以下替代方法- chk.Value = TrueValue;
- chk.Selected = true;
- chk.Value = true;
由于这是一个多用户数据库,我不能简单地将布尔值存储在预先确定的列表中,因此为什么要先获取和填充预先确定的列表,然后我会尝试执行他们之前的选择。
注意:我不太确定我在上面所做的是否是解决此问题的最佳方法,所以作为奖励,如果有人有任何有关如何嵌套 using 语句或如何处理此问题的提示,将不胜感激。
【问题讨论】:
标签: c# sql datagridview