2011-12-07 10 views
0

私は2つのデータセットを生成したXML文書とSQL(MS 2005)テーブルを持っています。データセットには異なるスキーマがあり、SQLテーブルは基本的にXMLのサブセットです。私はかなりのDBへの完全なXMLを渡し、そこに仕事をして誘惑てるデータセットを使用したXMLからXMLへ

dataSet.ReadXml(xmlStream); 
var ta = new TableAdapter(); 
foreach(var r in dataSet.Tables["MyTable"].Rows) 
{ 
ta.Insert( DateTime.Parse(r["date1"].ToString()), 
     int.Parse(r["num"].ToString()), 
     DateTime.Parse(r["date2"].ToString()), 
     DateTime.Parse(r["date3"].ToString()) 
    ); 
} 

を私はマップする滑らかな印象方法がなければならないと確信して次のように私は、DBにデータを取得しています2つのデータセット間の列を作成し、コード内にデータをコピーします(特に、 'datetimeを文字列に変換してから' datetime 'に戻す必要はありません)。誰でも何か提案がありますか?

答えて

0

ハッシュテーブルを作成して、対応するデータテーブルの列の種類をたとえば に格納することができます。

TypeMap = new Hashtable(); 
    TypeMap[typeof(UInt64)] = SqlInt64 
    TypeMap[typeof(Boolean)] = SqlBoolean      
    ... 

と例えばGetTypeForData(DataColumn column, object value) ための関数を作成し、System.Data.SqlTypes

ありませんが、コードのアイデアを返します。