Приложение .NET для интеграции XML и SQL Server - PullRequest
0 голосов
/ 28 марта 2012

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

1 Ответ

0 голосов
/ 28 марта 2012

Как насчет использования ErrorLogFile ?

Это где массовый загрузчик хранит все свои ошибки и сообщения, просто попробуйте один, сделать его сбой, посмотреть, что формат, а затем вы можете затем загрузить, проанализировать и сгенерировать xml?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...