从xml读取数据并使用C#在数据库中写入

时间:2013-03-04 18:35:59

标签: c# linq

有没有快速的方法来读取XML文件并将信息转储到数据库中?

我有一个XSD文件,我使用此处提供的Xsd2DB实用程序创建了一个数据库(http://xsd2db.sourceforge.net/) -

我现在有要插入数据库的XML文件,有没有快速的方法呢?或唯一的方法是读取/遍历xml并将记录插入数据库?

我试过了

  • 我尝试将XSD读入DataSet
  • 然后我将XML读入相同的DS

但我不知道如何告诉Adapter将所有表推送到数据库中?

1 个答案:

答案 0 :(得分:0)

您可以将xml文件读入数据集,然后将数据集添加到表中。你如何去做它取决于你的SQL服务器(mySql,Oracle,MS SQL)。这是一个例子:

Imports System.Xml
Imports System.Data.SqlClient
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim connetionString As String
    Dim connection As SqlConnection
    Dim command As SqlCommand
    Dim adpter As New SqlDataAdapter
    Dim ds As New DataSet
    Dim xmlFile As XmlReader
    Dim sql As String

    Dim product_ID As Integer
    Dim Product_Name As String
    Dim product_Price As Double

    connetionString = "Data Source=servername;Initial Catalog=databsename;User ID=username;Password=password"
    connection = New SqlConnection(connetionString)

    xmlFile = XmlReader.Create("Product.xml", New XmlReaderSettings())
    ds.ReadXml(xmlFile)
    Dim i As Integer
    connection.Open()
    For i = 0 To ds.Tables(0).Rows.Count - 1
        product_ID = Convert.ToInt32(ds.Tables(0).Rows(i).Item(0))
        Product_Name = ds.Tables(0).Rows(i).Item(1)
        product_Price = Convert.ToDouble(ds.Tables(0).Rows(i).Item(2))
        sql = "insert into Product values(" & product_ID & ",'" & Product_Name & "'," & product_Price & ")"
        command = New SqlCommand(sql, connection)
        adpter.InsertCommand = command
        adpter.InsertCommand.ExecuteNonQuery()
    Next
    connection.Close()
End Sub

结束班

您可以在此处找到更多示例:http://vb.net-informations.com/xml/vb.net-xml-insert-database.htm