2016-04-07 5 views
1

XML'i, gerektiğinde çalıştığı sınıflara serpiştirdim. Bir veritabanı tabloya nesneyi eklemek mümkün olursamXML etiketlerini veritabanı sütunlarına ekleme

var First = deserializedList.Select(item => item.Personpost.Namn.Fornamn).ToList(); 
       foreach (var o in First) 
       { 
        Console.WriteLine("Namn: " + o); 
       } 

Şimdi merak ediyorum: Her XML etiketi

Bu, örneğin bir listesi-döndüren, ad etiketinin tüm değerleri yazdırır bir sütun olarak?

Böyle bir şey mi var?

string connetionString = null; 
      SqlConnection connection; 
      SqlCommand command; 
      SqlDataAdapter adpter = new SqlDataAdapter(); 
      DataSet ds = new DataSet(); 
      XmlReader xmlFile; 
      string sql = null; 


      connetionString = "Data Source=tsrv2062;Initial Catalog=Bums;User ID=*****;Password=*****"; 

      connection = new SqlConnection(connetionString); 

      xmlFile = XmlReader.Create("navetout.xml", new XmlReaderSettings()); 
      ds.ReadXml(xmlFile); 


      connection.Open(); 



      SqlCommand command1 = new SqlCommand("INSERT INTO Seamen(FirstName) values(@FirstName)", connection); 
      command1.Parameters.AddWithValue("@FirstName", First); 

      command1.ExecuteNonQuery(); 

      connection.Close(); 
      Console.WriteLine("Done"); 

Bunu denedim, ama hata var: komut parametre olarak List<string> geçemez

There is no mapping from object type System.Collections.Generic.List`1 [[System.String, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]] to a built-in type of a known provider.

cevap

1

. Tüm değerleri bu listeden eklemek istiyorsanız, First listesindeki tüm öğeleri (ilk örneğinizde yaptığınız gibi) yinelemeli ve değerler eklemelisiniz.

c kodunuzun/p:

xmlFile = XmlReader.Create("navetout.xml", new XmlReaderSettings()); 


ds.ReadXml(xmlFile); 


connection.Open(); 

SqlCommand command1 = new SqlCommand("INSERT INTO Seamen(FirstName) values(@FirstName)", connection); 

foreach (var name in First) 
{ 
    command1.Parameters.Clear(); 
    command1.Parameters.AddWithValue("@FirstName", name); 

    command1.ExecuteNonQuery(); 
} 

connection.Close(); 
Console.WriteLine("Done"); 

bunu test etmedim, ama bu sorunu çözmek gerekir.

+0

Teşekkürler, ama aynı anda birden çok sütun eklemek istersem? Bu döngüdeki her sütunu döngülemenin bir yolu var mı? –