我从sql数据库中提取数据并用它填充datagridView1:
dataGridView1.DataSource = bsour;
用户将能够编辑1列中的值,但该列的可能值仅为Null,0,1或2,因此为了防止输入错误的值,我决定执行ComboBoxColumn:
DataGridViewComboBoxColumn col1 = new DataGridViewComboBoxColumn();
col1.Name = "il_normal_combo";
col1.HeaderText = "Normal";
col1.Items.Add("");
col1.Items.Add("0");
col1.Items.Add("1");
col1.Items.Add("2");
dataGridView1.Columns.Insert(5, col1);
另一个现在不必要的列我将隐藏.Visible = false; 我希望ComboBoxColumn显示将隐藏的其他列的数据库值,我似乎无法使其工作。
我尝试了什么:
col1.ValueMember = "il_normal";
col1.DisplayMember = "il_normal";
那些没有工作但没有错误信息的人。 这不起作用并产生错误"值不正确"
for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
{
dataGridView1.Rows[i].Cells[5].Value = dataGridView1.Rows[i].Cells[7].Value;
}
答案 0 :(得分:0)
我在这里找到了类似的问题 Change DataGridViewColumn to DataGridViewComboBoxColumn in bound DataGridView 但该帖子的解决方案对我不起作用。在ComboBoxColumn而不是数字,我得到System.Data.DataRows。(某事)所以我推断它不知道使用哪个列(即使在DataSource中只有一个)所以我添加了
col1.DisplayMember = "number";
然后它起作用了: - )