Com 如何让ADO.NET使用持久化XML ADO记录集进行更新

Com 如何让ADO.NET使用持久化XML ADO记录集进行更新,com,ado.net,xml-serialization,recordset,Com,Ado.net,Xml Serialization,Recordset,我正在开发一个多层客户机-服务器应用程序的.NET2.0转换。目前,我们正在将服务器端转换为.NET,但将客户端应用保留在COM VB6中。我目前的工作重点是从分离的基于COM的客户端获取数据。 当前正在开发的版本使用ADOCOM记录集作为XML持久化并发送给客户端。然后,客户端将XML加载到记录集对象中,以便对数据进行读/写访问。数据以相同的格式发送回服务器。 在收到要更新的持久化XML记录集后,我们会执行一些相当笨拙的解析来生成更新语句,这些语句通过ADO.NET来更新源数据库 在非常粗略的

我正在开发一个多层客户机-服务器应用程序的.NET2.0转换。目前,我们正在将服务器端转换为.NET,但将客户端应用保留在COM VB6中。我目前的工作重点是从分离的基于COM的客户端获取数据。 当前正在开发的版本使用ADOCOM记录集作为XML持久化并发送给客户端。然后,客户端将XML加载到记录集对象中,以便对数据进行读/写访问。数据以相同的格式发送回服务器。 在收到要更新的持久化XML记录集后,我们会执行一些相当笨拙的解析来生成更新语句,这些语句通过ADO.NET来更新源数据库

在非常粗略的伪代码中:

adodb.recordset oRS = load(ADOXML)
for each rec in oRS
{
  string sSQL = "Update table set value = " + rec.ValueField + " where key = " + rec.KeyField
  executeNonQuery(sSQL)
}
*免责声明:实际逻辑远没有达到这一粗糙程度,但最终结果是一样的

我想知道是否有人有更好的解决方案将更新后的数据返回数据库

谢谢


Dan

将所有行设置为“修改”后,是否考虑使用TableAdapter对数据执行更新

如果您有一个预配置的SQLTableAdapter,它内置了更新函数,那么通过将表中的XML读入数据集中,您就可以从表适配器调用更新函数,用表中的每一行更新中央数据库

var tableadapter = new MyTableAdapter();

var dataset = new MyDataSet();

dataset.ReadXml("c:\myxmldata.xml");

foreach(var row in dataset.tables[0].rows)
{
   row.SetModified();
}

tableadapter.Update(dataset);