我正在Visual Studio 2010中开发一个简单的Windows Forms桌面应用程序。它连接到两表数据库,显示值。用户更改表格中的一些值,并且应该保存它们。我有两个表格:Banks
和Orders
。 Orders
与Banks
(它有一个bank_id
字段)有外键关系。
我创建了一个Form
,我创建了一个Dataset
,并通过拖放VS2010的Server Explorer
面板中的两个表来添加数据。
然后,我通过将Orders
拖放到Form
上,将DataGridView
添加到我的Form
中。
这是一个工作项目,我可以改变数据,保存它,并将其保存在数据库中。DataGridView ComboboxCell不会将其值保存到数据库中
唯一令人担心的是,将银行ID代替他们的名字放在表格中是不方便的。我希望在我的表中有一个ComboBoxCell
。
我用我的Form
上的DataGridView
删除了一列bank_id
的可视化编辑器。相反,我下面的代码添加到Form
构造:
public Form6()
{
InitializeComponent();
DataGridViewComboBoxColumn colFilterType = new DataGridViewComboBoxColumn();
colFilterType.HeaderText = "Bank";
colFilterType.DataSource = dataSet1.banks;
colFilterType.ValueMember = "id";
colFilterType.DisplayMember = "display_name";
colFilterType.ValueType = typeof(int);
ordersDataGridView.Columns.Add(colFilterType);
}
点评:表Banks
有场id
和display_name
。
它工作正常,为ComboBoxCell
,但它有2个问题:
1.当启动形式,在该列(仅在列),所有值都是空的(而不是从数据库中把他们)。
2.当我更改某个日期(例如添加一行)时,除Bank
列中的值之外的所有值均成功保存到数据库。但Bank
列中的值不会保存。
我认为Bank
列与我的数据(Dataset
或类似的东西)的绑定有些问题。
有人能帮我解决这个问题吗?我应该如何将Bank
列中的所有数据保存到数据库?
您可以隐藏bank_id列而不是删除它。您可以将列的可见属性设置为false。 – suds