2009-03-23 10 views
0

私は、多層クライアント/サーバーアプリケーションの.NET 2.0変換に取り組んでいます。当面は、サーバー側を.NETに変換しますが、クライアントアプリケーションはCOMに残しています(VB6)。私の現在の作業は、分離されたCOMベースのクライアントとの間でデータをやりとりすることに焦点を当てています。
開発中の現在のバージョンは、XMLとして永続化されてクライアントに送信されるADO(COM)レコードセットを使用しています。クライアントは、データを読み書きするためにXMLをレコードセットオブジェクトにロードします。データは、同じ形式でサーバーに送り返されます。
更新用に永続化されたXMLレコードセットを受け取ると、ADO.NETを介してプッシュされたUPDATE文を生成するために、むしろクルージング解析を行い、それに応じてソースデータベースを更新します。 (非常に粗い)擬似コードでADO.NETで更新用の永続化されたXML ADOレコードセットを使用する方法

adodb.recordset oRS = load(ADOXML) 
for each rec in oRS 
{ 
    string sSQL = "Update table set value = " + rec.ValueField + " where key = " + rec.KeyField 
    executeNonQuery(sSQL) 
} 

*免責事項:実際のロジックは、この粗ほど遠いではないが、最終結果は同じです。

誰もが戻ってデータベースに更新されたデータを取得するためのよりよい解決策を持っている場合、私は思ったんだけど...?

おかげで、

ダン

答えて

0

はあなたがすべての行を設定したら変更にデータの更新を実行するためにTableAdapterのを使用して検討していますか?

事前定義されたSQLTableAdapterには、XMLからテーブルを読み込んでデータセットに組み込んだ場合、テーブルアダプタの更新機能を呼び出して、テーブルのすべての行で中央DBを更新できます。

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); 
関連する問題