【发布时间】: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 文件以提供有关批量加载操作的信息(即插入了多少条记录,如果插入成功)。
就目前而言,我认为我可能正在使用错误的课程来完成我想要完成的工作。我使用的是正确的类,还是应该使用不同的类?
如果可能的话,任何人都可以向我指出更多材料的方向来帮助我吗?任何帮助将不胜感激。
【问题讨论】:
标签: c# .net sql xml integration