C# 将XML标记插入数据库列
我已经将XML反序列化为类,这些类可以正常工作。它返回每个XML标记的列表 例如,打印名称标记的所有值:C# 将XML标记插入数据库列,c#,sql-server,xml,C#,Sql Server,Xml,我已经将XML反序列化为类,这些类可以正常工作。它返回每个XML标记的列表 例如,打印名称标记的所有值: var First = deserializedList.Select(item => item.Personpost.Namn.Fornamn).ToList(); foreach (var o in First) { Console.WriteLine("Namn: "
var First = deserializedList.Select(item => item.Personpost.Namn.Fornamn).ToList();
foreach (var o in First)
{
Console.WriteLine("Namn: " + o);
}
现在我想知道是否能够将该对象作为列插入数据库表中
像这样的
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");
我尝试了这个,但出现了错误:
没有来自对象类型System.Collections.Generic.List`1的映射
[[System.String,mscorlib,Version=4.0.0.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089]]转换为已知
提供者
不能将
List
作为命令参数传递。
如果要插入该列表中的所有值,应首先遍历First
列表中的所有项目(与第一个示例中的操作类似)并插入值
你方代码的c/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");
我还没有测试它,但这应该可以解决您的问题。谢谢,但是如果我想同时插入多个列呢?有没有办法循环该循环中的每一列?