我在datagrid中插入一行DataSet dataset=(DataSet)dataGrid1.DataSource;
DataTable datatable=dataset.Tables[0];
DataColumn[] key=new DataColumn[1];
key[0]=datatable.Columns["ID"];
datatable.PrimaryKey=key;
System.Data.DataRow row=datatable.NewRow();
datatable.Rows.InsertAt(row,Row+1);datatable.AcceptChanges();//如果不要这句话,在datagrid上就不能显示出在指定的位置,插入的一行。如果要了,新插入的这一行的状态就不是Add,updata的时候它调用的是UpdataCommand而不是InsertCommand,肯定出错。
不知道这种情况怎么处理。
给一段示范性的代码,小弟不胜感激!
DataTable datatable=dataset.Tables[0];
DataColumn[] key=new DataColumn[1];
key[0]=datatable.Columns["ID"];
datatable.PrimaryKey=key;
System.Data.DataRow row=datatable.NewRow();
datatable.Rows.InsertAt(row,Row+1);datatable.AcceptChanges();//如果不要这句话,在datagrid上就不能显示出在指定的位置,插入的一行。如果要了,新插入的这一行的状态就不是Add,updata的时候它调用的是UpdataCommand而不是InsertCommand,肯定出错。
不知道这种情况怎么处理。
给一段示范性的代码,小弟不胜感激!
调用
DataAdapter.Update(datatable);
我现在有两种方式保存数据库
不知道那种好。
1.在删除移行记录,或者新增一条记录的时候,没有调用datatable.AcceptChanges()来接受改变
到最后用Adapter.Updata(dataset)来处理。
这样就会产生一个问题,在删除一行后,如果没有接受改变,在给数据库一列赋值的时候,就会提示
不能访问已经删除的记录。
2. 针对上述问题,我换了一种做法,就接受改变datatable.AcceptChanges().这时候就不能再最后一块Adapter.Updata(dataset)。因为所有行在datatable.AcceptChanges()后状态都变成了UnChange。
我就定义了三个数组来保存,状态发生改变的记录。
然后自己写SQL语句来保存数据。这样比叫麻烦
不知道各位怎么处理这个问题。
然后再Update(DataSet)
最好给个例子
到最后用Adapter.Updata(dataset)来处理。
这样就会产生一个问题,在删除一行后,如果没有接受改变,在给数据库一列赋值的时候,就会提示
不能访问已经删除的记录。
2. 针对上述问题,我换了一种做法,就接受改变datatable.AcceptChanges().这时候就不能再最后一块Adapter.Updata(dataset)。因为所有行在datatable.AcceptChanges()后状态都变成了UnChange。
我就定义了三个数组来保存,状态发生改变的记录。
然后自己写SQL语句来保存数据。这样比叫麻烦
不知道各位怎么处理这个问题。