我对C#很陌生,所以我希望在绑定到数据库的Windows窗体上进行一些指导。以下是有关创建新项目主文件的一般流程:
1)查看需要新行的未结销售订单。我使用listView显示Item#和description。在SelectedIndexChanged上,我使用与通过一个数据源添加的项有关的数据填充一些未启用的行。此外,还会在DataGridView中添加一行'默认'使用不同的数据源以编程方式分配的值。
以上作品很棒...
2)然后,用户将修改默认建议,并保存页面,数据应提交给数据库。
提交有问题......
我将在此处提取适当的代码部分,解析出有效的内容......
查找要处理的行:
listView1_SelectedIndexChanged(...)
{
itemSelected.Text = listView1.SelectedItems[0].Text;
//Fill by item - use different datasets avoiding key conflicts
this.itemTableAdapter.FillByItem(this.COMPANY01DataSet.item, itemSelected.Text);
this.headerTableAdapter.FillByItem(this.itemDataSet.header, itemSelected.Text);
/// Assign default values as suggestions
this.PopHdrDGV();
}
指定默认值&所需数据:
private void PopHdrDGV()
{
// set defaults as suggestions
DataRow hdrRow = itemDataSet.header.NewheaderRow();
hdrRow["business_unit"] = "US01";
hdrRow["item"] = "item to add";
hdrRow["revision"] = "revision to add";
hdrRow["qty"] = 10;
hdrRow["uom"] = "EA";
hdrRow["cost_flag"] = false;
hdrRow["planning_flag"] = false;
hdrRow["eff_status"] = "N";
hdrRow["eff_date"] = DateTime.Now;
hdrRow["created_by"] = Environment.UserName;
hdrRow["created_date"] = DateTime.Now;
hdrRow["changed_by"] = Environment.UserName;
hdrRow["changed_date"] = DateTime.Now;
//rebind to dgv
headerBindingSource.DataSource = hdrRow;
headerDataGridView.DataSource = headerBindingSource;
}
保存DGV并提交到数据库:
button1_click(....)
{
Validate();
headerBindingSource.EndEdit();
headerTableAdapter.Update(itemDataSet.header);
headerDataGridView.Update(); /// added to test a few different approaches
}
我知道这是一个非常基本的流程,但在我所进行的所有研究中,我都找不到任何东西。感谢所有帮助。
答案 0 :(得分:0)
如果您使用MSSQL作为数据库我建议 DataTable 和 DataAdapter 方法:
SqlDataAdapter adt = new SqlDataAdapter(PredefinedSqlCommand);
DataTable MyDataTable = DataGrid.DataSource as DataTable;
adt.Update(MyDataTable);
MyDataTable.AcceptChanges();
在此之前,您必须将表列绑定到 SqlCommand ,并将其声明为适配器 InsertCommand 。相同的方法是更新和删除行。
祝你好运。