用于 XML 和 SQL Server 集成的 .NET 应用程序

Posted

技术标签:

【中文标题】用于 XML 和 SQL Server 集成的 .NET 应用程序【英文标题】:.NET Application for XML and SQL Server Integration 【发布时间】:2012-04-11 13:48:33 【问题描述】:

作为一个编程经验很少的数据库开发人员,我目前正在尝试开发一个 C# .NET 控制台应用程序来将 XML 文件导入 SQL Server 数据库。导入完成后,我需要创建一个“响应”文件以传回另一个应用程序。

在进行自己的研究时,我遇到了 SQLBULKLOAD 类。事实上,我在网上找到了一些示例代码,这些示例代码(至少部分地)显示了我正在尝试做的事情:

using System;
using System.IO;
using System.Collections;
using SQLXMLBULKLOADLib;
using System.Data.OleDb;
using System.Diagnostics;
namespace SQLXmlExample

    class Program
    
        [STAThread]
        static void Main(string[] args)
        
            string schema = "C:\\ImportSample\\MappingFile.xml";
            string datafile = "C:\\ImportSample\\DataFile.xml";
            string connectionString = @"provider=SQLOLEDB;data source=localhost;database=SqlXmlDemo;Integrated Security=SSPI;";
            for (int i = 0; i < args.Length; i++)
            
                switch (args[i].ToLower())
                
                    case "-schema": 
                            schema = args[i + 1];
                            break;
                    case "-datafile": 
                            datafile = args[i + 1];
                            break;
                                            
            
            if (schema == string.Empty || datafile == string.Empty)
            
                Console.WriteLine("Missing Schema or Data File.  Format: SqlXmlExample -datafile [filename] -schema [filename]");
                return;
            
            Load(datafile, schema, connectionString);
        
        static public void Load(string XMLFilename, string XMLMappingFilename, string ConnectionString)
        
            SQLXMLBULKLOADLib.SQLXMLBulkLoad loader = new SQLXMLBULKLOADLib.SQLXMLBulkLoad();
            loader.CheckConstraints = true;
            loader.XMLFragment = true;
            loader.SchemaGen = true;
            loader.SGDropTables = false;
            loader.Transaction = false;
            loader.ConnectionString = ConnectionString;
            loader.Execute("C:\\ImportSample\\MappingFile.xml", "C:\\ImportSample\\DataFile.xml");
        
    
  

使用上面的代码,我可以将 .XML 文件导入 SQL Server 实例。但是,我的问题是生成“响应”.XML 文件以提供有关批量加载操作的信息(即插入了多少条记录,如果插入成功)。 就目前而言,我认为我可能正在使用错误的课程来完成我想要完成的工作。我使用的是正确的类,还是应该使用不同的类? 如果可能的话,任何人都可以向我指出更多材料的方向来帮助我吗?任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

使用ErrorLogFile怎么样?

这是批量加载程序存储所有错误和消息的地方,只需尝试一个,让它失败,看看格式是什么,然后你就可以加载、解析和生成 xml?

【讨论】:

我尝试使用 ErrorLogFile。尽管它在错误方面有所帮助,但它并没有提供实际的日志记录机制来显示成功加载了多少记录。顺便说一句,感谢您的意见!

以上是关于用于 XML 和 SQL Server 集成的 .NET 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

初识SQL Server Integration Services (SSIS)

Ssms 和sql server 2019区别

Windows Server 2022 Install Sql Server 2022

Windows Server 2022 Install Sql Server 2022

Powershell Install SQL Server 2022

Powershell Install SQL Server 2022