【发布时间】:2015-09-20 09:38:04
【问题描述】:
我在DataGridView 中有 3 列。
- 文本类型
- 组合框
- 文本类型
我已经像这样绑定 Datagridview 的 Combobox:
BindingSource bindingSourceUnit = new BindingSource();
bindingSourceUnit.DataSource = datatableObject;
ColumnUnit.DataSource = bindingSourceUnit;
ColumnUnit.ValueMember = "id";
ColumnUnit.DisplayMember = "title";
这显示了 ComboBox 第二列的每一行中的所有项目。
现在我正在从数据库中获取数据,并希望将其显示在 DataGridView 中。
cmd = new OleDbCommand("SELECT * FROM Detail WHERE lr_id = @id", con);
cmd.Parameters.AddWithValue("@id", ID);
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
DataGridViewRow row = (DataGridViewRow)dgItem.Rows[0].Clone();
row.Cells[dgItem.Columns["ColumnQty"].Index].Value = reader["qty"];
row.Cells[dgItem.Columns["ColumnUnit"].Index].Value = reader["unit"];
row.Cells[dgItem.Columns["ColumnDesc"].Index].Value = reader["detail"];
dgItem.Rows.Add(row);
}
}
在 while 循环中,“ColumnUnit”是我的 ComboboxType 字段。它不允许我预先选择值。
如何设置此列的值?
【问题讨论】:
-
您是否使用调试器单步执行代码并评估行的值..您要克隆什么或试图克隆什么..
-
我在示例中看到过,如果您想在网格中显示数据,您必须克隆行以便它可以包含所有列,或者您必须手动添加行,每次您使用什么类型的数据有
-
您正在从选择查询中获取数据.. 执行查询后,使用
Fill方法返回数据并通过数据表或数据集将结果绑定到数据网格..跨度>
标签: c# datagridviewcolumn