Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BindingSource.EndEdit()与TableAdapterManager.UpdateAll()的比较_C#_Vb.net_Dataset_Bindingsource_Tableadapter - Fatal编程技术网

C# BindingSource.EndEdit()与TableAdapterManager.UpdateAll()的比较

C# BindingSource.EndEdit()与TableAdapterManager.UpdateAll()的比较,c#,vb.net,dataset,bindingsource,tableadapter,C#,Vb.net,Dataset,Bindingsource,Tableadapter,在.NET framework中,为了将数据保存到数据库项中,必须使用: Me.Validate(); Me.CustomersBindingSource.EndEdit(); Me.TableAdapterManager.UpdateAll(Me.CustomerDataSet); 有人能解释一下为什么吗?幕后发生了什么?如果.EndEdit()将更改应用于基础数据源,为什么应用这些更改还不够?应用这些更改就足够了。。。到数据源。数据源是一个数据表,它是应用程序中的一个对象。UpdateAl

在.NET framework中,为了将数据保存到数据库项中,必须使用:

Me.Validate();
Me.CustomersBindingSource.EndEdit();
Me.TableAdapterManager.UpdateAll(Me.CustomerDataSet);
有人能解释一下为什么吗?幕后发生了什么?如果.EndEdit()将更改应用于基础数据源,为什么应用这些更改还不够?

应用这些更改就足够了。。。到数据源。数据源是一个
数据表
,它是应用程序中的一个对象。
UpdateAll
调用将
DataTable
中的更改保存到数据库中,实际上,
数据集中的所有
DataTables

NET基于一个断开连接的模型。这意味着您的应用程序没有直接连接到数据库。在VB6中使用ADO,对
记录集所做的更改直接对数据库进行。在ADO.NET中并非如此。调用
Fill
时,将打开与数据库的连接,将数据从数据库复制到
DataTable
中,然后关闭连接。您在本地所做的任何更改仅影响该本地副本。当您调用
Update
UpdateAll
时,将再次打开连接,并将本地更改保存到数据库中。

只需“应用这些更改”。。。到数据源。数据源是一个
数据表
,它是应用程序中的一个对象。
UpdateAll
调用将
DataTable
中的更改保存到数据库中,实际上,
数据集中的所有
DataTables

NET基于一个断开连接的模型。这意味着您的应用程序没有直接连接到数据库。在VB6中使用ADO,对
记录集所做的更改直接对数据库进行。在ADO.NET中并非如此。调用
Fill
时,将打开与数据库的连接,将数据从数据库复制到
DataTable
中,然后关闭连接。您在本地所做的任何更改仅影响该本地副本。调用
Update
UpdateAll
时,会再次打开连接,并将本地更改保存到数据库中