2010-08-30 36 views
2

我想导出xml文件数据到sql数据库表。任何人都可以指导我吗?如何将xml导出到数据库 - asp.net

+0

你从哪个数据库发言? Sql Server? – BitKFu 2010-08-30 06:16:26

+0

你已经有一个合适的表的数据库?你会多次或只是一次?你使用哪个数据库? – 2010-08-30 06:19:59

+0

我想每天导出数据。我创建了一个合适的表格。 sql server 2008. – Geeth 2010-08-30 06:23:40

回答

4

如果它是一个SQL Server,我已经回答了类似的问题。看看下面的帖子:

.NET: How to insert XML document into SQL Server

您可以使用小的C#部分,用于存储你的数据。您只需修改表格和栏位栏位。

class Program 
{ 
    private static void SaveXmlToDatabase(DbConnection connection, 
      XmlDocument xmlToSave) 
    { 
     String sql = "INSERT INTO xmlTable(xmlColumn) VALUES (@xml)"; 

     using (DbCommand command = connection.CreateCommand()) 
     { 
      XPathNavigator nav = xmlToSave.CreateNavigator(); 
      string xml = nav.SelectSingleNode("/catalog/cd[title='Manowar']").InnerXml; 

      command.CommandText = sql; 
      command.Parameters.Add(
      new SqlParameter("@xml", SqlDbType.Xml) 
       {Value = new SqlXml(new XmlTextReader(xml 
          , XmlNodeType.Document, null)) }); 

      DbTransaction trans = connection.BeginTransaction(); 
      try 
      { 
      command.ExecuteNonQuery(); 
      trans.Commit(); 
      } 
      catch (Exception) 
      { 
      trans.Rollback(); 
      throw; 
      } 
     } 
    } 

    static void Main(string[] args) 
    { 
     XmlDocument document = new XmlDocument(); 
     document.Load(args.First()); 

     SqlConnection connection = new SqlConnection(
      "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"); 

     SaveXmlToDatabase(connection, document); 

     connection.Close(); 
    } 
} 
+0

是否可以过滤xml文件中的字段,并将其作为参数传递给插入? – Geeth 2010-08-30 09:35:11

+0

您可以添加一个xpath查询来过滤xml文件。 – BitKFu 2010-08-30 10:56:53

+0

请你能多解释一下。 – Geeth 2010-08-30 10:59:36

相关问题