2013-08-26 2 views
2

У меня есть этот xml-файл, и я хочу сохранить значение NUMBER (например) в таблицу SQL Server.Сохраните данные XML в таблице SQL Server

<ORDER> 
    <ORDER_HEADER> 
    <NUMBER>10945</NUMBER> 
    <TIME>7.8.2013 12:45:20</TIME> 
    <NOTE>this is Note</NOTE> 
    </ORDER_HEADER> 
</ORDER> 

Это мой код:

XDocument doc = XDocument.Load("C:\\Users\\L\\Desktop\\data.xml"); 
var NUMBER = doc.Descendants("NUMBER"); 
var TIME = doc.Descendants("TIME"); 
var NOTE = doc.Descendants("NOTE"); 

foreach (var cislo in NUMBER) 
{ 
    SqlConnection conn = new SqlConnection("Data Source=***"); 
    conn.Open(); 

    using (SqlCommand cmd = conn.CreateCommand()) 
    { 
     cmd.CommandText = "Update CISLO SET cislo = @cislo1;"; 
     cmd.Parameters.AddWithValue("@cislo1", doc); 

     cmd.ExecuteNonQuery(); 
    } 
} 

MessageBox.Show("OK"); 

Я получаю эту ошибку:

There is no mapping from object type System.Xml.Linq.XDocument to a known managed provider native type.

На ряду:

cmd.ExecuteNonQuery(); 

ответ

3

Вы передаете 'документ', который ваш XDocument, в параметр. Попробуйте изменить

cmd.Parameters.AddWithValue("@cislo1", doc); 

в

cmd.Parameters.AddWithValue("@cislo1", cislo); 
+2

, вероятно, должен быть 'cislo.Value' – MarcinJuraszek

+0

ДА !! cmd.Parameters.AddWithValue ("@ cislo1", cislo.Value); – Kate

+0

Хороший звонок, @MarcinJuraszek – jle

Смежные вопросы