问题描述
listview,txt控件,label控件分别绑定Dataset中一个表,这样在选中listview不同行时txt控件和label控件可显示绑定表不同列的内容.按钮触发事件以如下语句加入新记录.发现增加表记录除在增加新记录同时老是将listview光梂所在那一行的记录也改为新记录内容了.如:原来有"aaa","bbb","ccc"三条记录,listview选中了"bbb",再增加"ddd"时,变成了"aaa","ddd","ccc","ddd",中间的"ddd"变成选中的了System.Data.DataSetDSGlendene;System.Data.OleDb.OleDbDataAdapterdaTreatment;//绑定代码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";//增加行代码DataRownewTreatmentRow=dtTreatment.NewRow();newTreatmentRow["Description"]=txtDescription.Text;newTreatmentRow["Cost"]=Convert.ToDouble(txtCost.Text);dtTreatment.Rows.Add(newTreatmentRow);daTreatment.Update(DM.dtTreatment)
解决方案
解决方案二:
listview,txt控件,label控件分别绑定Dataset中一个表,这样在选中listview不同行时txt控件和label控件可显示绑定表不同列的内容.按钮触发事件以如下语句加入新记录.发现增加表记录除在增加新记录同时老是将listview光梂所在那一行的记录也改为新记录内容了.如:原来有"aaa","bbb","ccc"三条记录,listview选中了"bbb",再增加"ddd"时,变成了"aaa","ddd","ccc","ddd",中间的"bbb"变成"ddd",状态为选中System.Data.DataSetDSGlendene;System.Data.OleDb.OleDbDataAdapterdaTreatment;//绑定代码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";//增加行代码DataRownewTreatmentRow=dtTreatment.NewRow();newTreatmentRow["Description"]=txtDescription.Text;newTreatmentRow["Cost"]=Convert.ToDouble(txtCost.Text);dtTreatment.Rows.Add(newTreatmentRow);daTreatment.Update(DM.dtTreatment)
解决方案三:
增加新行之后重新为你的listview绑定数据源试试。另外你的listview并没有使用DataBindings方式。
解决方案四:
daTreatment.Update(DM.dtTreatment);//这里的DM又从哪冒出来的
解决方案五:
不要绑定,直接在listview的itemclick事件里面将当前行的文本传给文本框即可。
解决方案六:
daTreatment.Update(DM.dtTreatment);更正为daTreatment.Update(dtTreatment);
解决方案七:
你这做法有点奇怪,而且看着也还没完全看明白你的操作过程,应该是有些过程你跳过没说清楚。新增后直接保存到数据库就行,可以不用重新加载;默认在listview的最下面新增1行记录.
解决方案八:
代码在如下链接,下载运行需要手动将access数据库路径链接更改一下.http://pan.baidu.com/s/1jGA7bWq