【发布时间】:2013-11-06 00:21:44
【问题描述】:
datagridview 中的组合框列出现问题:当我想插入新行时,我收到“System.ArgumentException:DataGridViewComboBoxCell 的值无效”。我正在使用 Linq to SQL 填充来自不同表的数据:
- 表客户(ID(键),姓名,...)
- 表地址(ID(键)、CustomerID、街道...)
- 表 ContactPerson(ID(键)、AddressID、姓名、职务……)
用于填充 ContactDataGridView(绑定到 TextBox RelationIdTextBox)的 Linq 查询如下:
var y = from r in BH.Relations
where r.RelationID.ToString() == relationIDTextBox.Text
join v in BH.Addresss on r.RelationID equals v.RelationID
join c in BH.ContactPersons on v.AddressID equals c.AddressID
select c;
contactPersonsBindingSource.DataSource = y;
ContactDataGridView.DataSource = contactPersonsBindingSource;
这很好用。
在这个 ContactDataGridView 中,我有一个 ComboBoxCell AddressID,它使用以下 linq 查询填充街道名称而不是 AddressID:
var addr = from a in BH.Addresss
where a.RelationID.ToString() == relationIDTextBox.Text
select new { AddressID = a.AddressID, Street = a.Street };
ContactAddressBindingSource = addr;
这也很好用。
也就是说,直到我想在这个 datagridview 中添加一个新行。然后我得到错误
"System.ArgumentException: DataGridViewComboBoxCell 的值 无效。”
谁能帮助我理解我做错了什么?实在想不通!
【问题讨论】:
-
我在我的数据库中的其他表上进行了尝试,但我不断收到相同的错误。我注意到只有当组合框单元格可能不包含空值时才会出现此错误。现在,我怎样才能防止这个错误,让用户决定他想从这个组合框中的可能值中选择哪个值?
-
DataGridViewComboBoxColumn是什么栏目?添加新行的代码是什么?
标签: c# sql linq datagridview