XML в SQL через наборы данных - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть документ XML и таблица SQL (MS 2005), из которой я сгенерировал два набора данных. Наборы данных имеют разные схемы, причем таблица SQL в основном является подмножеством 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())
      );
}

Я довольно соблазнен передачей полного XML в базу данных и выполнением работы там, но я уверен, что должен быть более точный способ сопоставить столбцы между двумя наборами данных и скопировать данные в коде (особенно не необходимость конвертировать datetime в строки и обратно обратно в datetime. Кто-нибудь получил какие-либо предложения?

1 Ответ

0 голосов
/ 08 декабря 2011

Вы можете создать Hashtable , чтобы хранить типы столбцов с данными, например, для

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

и создать функцию, например, GetTypeForData(DataColumn column, object value) и вернуть System.Data..SqlTypes

Нет кодов, но есть идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...