Создание таблицы SQL из XML с использованием C # - PullRequest
0 голосов
/ 12 июня 2019

Требуется помощь по следующему коду - я пытаюсь выяснить, где кодировать файл XML, который я на самом деле хочу использовать для перехода к таблице SQL.Я просто не уверен, как это указать в моей файловой системе ...

using System;
using System.Data.SqlClient;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var con = new SqlConnection("Server=(local);Database=TempDb;Integrated Security=true"))
            {
                con.Open();

                var cmdCreateTable = new SqlCommand("if object_id('dbo.t') is null create table t(id int identity primary key, doc xml);",con);
                cmdCreateTable.ExecuteNonQuery();

                var cmdInsertXml = new SqlCommand("insert into t(doc) values (@doc);", con);
                var pDoc = cmdInsertXml.Parameters.Add("@doc", System.Data.SqlDbType.Xml);

                var doc = XDocument.Parse("<root><cn/><cn/><cn/></root>");
                pDoc.Value = doc.CreateReader();

                cmdInsertXml.ExecuteNonQuery();

                var cmdRetrieveXml = new SqlCommand("select id, doc from t",con);
                using (var rdr = cmdRetrieveXml.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        var xr = rdr.GetSqlXml(1);
                        var rd = XDocument.Parse(xr.Value);
                        Console.WriteLine(rd.ToString());

                    }
                }
            }
        }
    }
}

Ответы [ 2 ]

1 голос
/ 12 июня 2019

ИЗ упомянутого кода я бы сказал, что строку ниже необходимо обновить var doc = XDocument.Parse ("");

Я бы сказал что-то вроде var doc = XDocument.Parse (File.ReadAllText (filePath));

Это будет работать только в том случае, если файл имеет правильный формат.

1 голос
/ 12 июня 2019

Я не уверен, что имею право, но я нашел это, если вы хотите попробовать.

попробуйте прочитать xml из DataTable

DataTable table;

   private void createDatatableFromXML()
   {
       table = new DataTable();
       string dataFile = @"DatafileLocation\datafile.xml";
       if (File.Exists(dataFile))
       {
           table.ReadXml(dataFile);

       }
       else
       {
          //Do som messaging
           return;
       }
   }

После этого попробуйте создать таблицу SQL из DataTable, посмотрите эту ссылку .

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