listview, txt控件, label控件分别绑定Dataset中一个表, 这样在选中listview不同行时txt控件和label控件可显示绑定表不同列的内容.
按钮触发事件以如下语句加入新记录. 发现增加表记录除在增加新记录同时老是将listview光梂所在那一行的记录也改为新记录内容了.
如: 原来有"aaa","bbb","ccc"三条记录, listview选中了"bbb", 再增加"ddd"时, 变成了"aaa","ddd","ccc","ddd", 中间的"bbb"变成"ddd", 状态为选中
System.Data.DataSet DSGlendene;
System.Data.OleDb.OleDbDataAdapter daTreatment;
//绑定代码
lblTreatmentID.DataBindings.Add("Text", DSGlendene, "Treatment.TreatmentID");
txtDescription.DataBindings.Add("Text", DSGlendene, "Treatment.Description");
txtCost.DataBindings.Add("Text", DSGlendene, "Treatment.Cost");
lstTreatments.DataSource = DSGlendene;
lstTreatments.DisplayMember = "Treatment.Description";
lstTreatments.ValueMember = "Treatment.Description";
//增加行代码
DataRow newTreatmentRow = dtTreatment.NewRow();
newTreatmentRow["Description"] = txtDescription.Text;
newTreatmentRow["Cost"] = Convert.ToDouble(txtCost.Text);
dtTreatment.Rows.Add(newTreatmentRow);
daTreatment.Update(DM.dtTreatment)
按钮触发事件以如下语句加入新记录. 发现增加表记录除在增加新记录同时老是将listview光梂所在那一行的记录也改为新记录内容了.
如: 原来有"aaa","bbb","ccc"三条记录, listview选中了"bbb", 再增加"ddd"时, 变成了"aaa","ddd","ccc","ddd", 中间的"bbb"变成"ddd", 状态为选中
System.Data.DataSet DSGlendene;
System.Data.OleDb.OleDbDataAdapter daTreatment;
//绑定代码
lblTreatmentID.DataBindings.Add("Text", DSGlendene, "Treatment.TreatmentID");
txtDescription.DataBindings.Add("Text", DSGlendene, "Treatment.Description");
txtCost.DataBindings.Add("Text", DSGlendene, "Treatment.Cost");
lstTreatments.DataSource = DSGlendene;
lstTreatments.DisplayMember = "Treatment.Description";
lstTreatments.ValueMember = "Treatment.Description";
//增加行代码
DataRow newTreatmentRow = dtTreatment.NewRow();
newTreatmentRow["Description"] = txtDescription.Text;
newTreatmentRow["Cost"] = Convert.ToDouble(txtCost.Text);
dtTreatment.Rows.Add(newTreatmentRow);
daTreatment.Update(DM.dtTreatment)
另外你的 listview 并没有使用 DataBindings 方式。
更正为
daTreatment.Update(dtTreatment);
新增后直接保存到数据库就行,可以不用重新加载;默认在listview的最下面新增1行记录.
http://pan.baidu.com/s/1jGA7bWq