Как разработчик базы данных с очень небольшим опытом программирования, в настоящее время я пытаюсь разработать консольное приложение 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 «Response» для предоставления информации об операции массовой загрузки (т. Е. Сколько записей было вставлено, если вставка прошла успешно).
В нынешнем виде, я думаю, что явозможно, использую неправильный класс для того, что я пытаюсь достичь.Использую ли я правильный класс или я должен использовать другой?
Если возможно, кто-нибудь мог бы указать мне в направлении еще какого-нибудь материала, чтобы помочь мне?Любая помощь будет принята с благодарностью.