C#中,mdf数据库操作问题
以下(A),(B)都是将dataSet1.Tables[0]的第一条记录删除(A)dataSet1.Tables[0].Rows.RemoveAt(0);(B)dataS...
以下(A),(B)都是将dataSet1.Tables[0]的第一条记录删除
(A)dataSet1.Tables[0].Rows.RemoveAt(0);
(B)dataSet1.Tables[0].Rows[0].Delete();
问题是:
1.(A),(B)有何驱别?
2.执行(A)后,再执行 Oda1.Update(dataSet1.Tables[0]);更新数据库后,重新打开数据库,第一记录还是没有被删除。
3.执行(B)后,再执行button1.Text = dataSet1.Tables[0].Rows[0][0].ToString(); 出错提示:不能通过已删除的行访问该行信息。 展开
(A)dataSet1.Tables[0].Rows.RemoveAt(0);
(B)dataSet1.Tables[0].Rows[0].Delete();
问题是:
1.(A),(B)有何驱别?
2.执行(A)后,再执行 Oda1.Update(dataSet1.Tables[0]);更新数据库后,重新打开数据库,第一记录还是没有被删除。
3.执行(B)后,再执行button1.Text = dataSet1.Tables[0].Rows[0][0].ToString(); 出错提示:不能通过已删除的行访问该行信息。 展开
展开全部
A是从数据集中移除那条数据,并没有对数据本身进行处理,所以用oda1.update之后,是不会对数据库中的数据进行删除的。
B中的delete则是对指定行做了删除标记,已经做了删除标记的行就不能再访问了(此时数据仍然在dataset中,这个操作是可以用RejectChanges撤消的),如果再执行AcceptChanges(),数据就会从dataset中删除。
数据状态的变化以及AcceptChanges之类的用法,可以参见
http://blog.csdn.net/td13560142839/article/details/7468387
http://www.douban.com/note/161997555/
B中的delete则是对指定行做了删除标记,已经做了删除标记的行就不能再访问了(此时数据仍然在dataset中,这个操作是可以用RejectChanges撤消的),如果再执行AcceptChanges(),数据就会从dataset中删除。
数据状态的变化以及AcceptChanges之类的用法,可以参见
http://blog.csdn.net/td13560142839/article/details/7468387
http://www.douban.com/note/161997555/
展开全部
dateset 是从数据库里面读取出来的数据。
dataSet1.Tables[0].Rows.RemoveAt(0);是删除该 dataset 中datatbale的 第一行的内的数据 并不是删除 数据库内的数据。RemoveAt 方法从父级的集合中移除位于指定索引值的子对象。
dataSet1.Tables[0].Rows[0].Delete();是将 dataset 中datatbale的 第一行 标记为删除,就是 RowState 变成“Deleted”。
dataSet1.Tables[0].Rows.RemoveAt(0);是删除该 dataset 中datatbale的 第一行的内的数据 并不是删除 数据库内的数据。RemoveAt 方法从父级的集合中移除位于指定索引值的子对象。
dataSet1.Tables[0].Rows[0].Delete();是将 dataset 中datatbale的 第一行 标记为删除,就是 RowState 变成“Deleted”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询