powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запись таблицы в XML файл
37 сообщений из 37, показаны все 2 страниц
Запись таблицы в XML файл
    #38417686
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите какую литературу почитать или может примеры работы с XML документами.
Записать таблицу БД в файл в xml, прочитать из xml файла.
(xml -> deserialize -> object -> update ->serialize -> xml )
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38417697
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38417779
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А пример такого типа - создадим таблицу на sql servere "Сustomers" .... "Orders". Запишем эти таблицы в XML-файл средствами Visual Studio.

Пока у меня "каша" в голове и гугл не спасает.
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38417794
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38418933
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306,

Например DataSet хорошо умеет с xml работать
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38418988
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38418989
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306Подскажите какую литературу почитать или может примеры работы с XML документами.
Записать таблицу БД в файл в xml, прочитать из xml файла.
(xml -> deserialize -> object -> update ->serialize -> xml )
sql server select to xml
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38418992
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не могли бы конкретный код подправить..
Задача - записать данные из таблицы Clients в xml файл, а затем чтение из xml файла в таблицу Customers.

Записываю в файл так :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
 private void button5_Click(object sender, EventArgs e)
        {
            try
            {
                if (!File.Exists(pathToXml))
                {
                    XmlTextWriter textWritter = new XmlTextWriter(pathToXml, Encoding.UTF8);

                    textWritter.WriteStartDocument();

                    textWritter.WriteStartElement("head");

                    textWritter.WriteEndElement();

                    textWritter.Close();
                }
                XmlDocument document = new XmlDocument();
                document.RemoveAll();
                document.Load(pathToXml);
                CommandText = @"select id,client,identifier,adress from Clients ";
                SqlDataAdapter dataAdapter_Clients = new SqlDataAdapter(CommandText, ConnetionString);
                DataSet ds_Clients = new DataSet();
                DataTable table_Clients = new DataTable();
                dataAdapter_Clients.Fill(table_Clients);

                for (int i = 0; i < table_Clients.Rows.Count; i++)
                {
                
                    XmlNode element = document.CreateElement("Item");
                    document.DocumentElement.AppendChild(element);
                    XmlAttribute attribute = document.CreateAttribute("number");
                    attribute.Value = (i + 1).ToString(); ; 
                    element.Attributes.Append(attribute);

                    XmlNode subElement_id = document.CreateElement("id");
                    subElement_id.InnerText = table_Clients.Rows[i]["id"].ToString();
                    element.AppendChild(subElement_id);

                    XmlNode subElement_client = document.CreateElement("client");
                    subElement_client.InnerText = table_Clients.Rows[i]["Client"].ToString();
                    element.AppendChild(subElement_client);

                    XmlNode subElement_identifier = document.CreateElement("identifier");
                    subElement_identifier.InnerText = table_Clients.Rows[i]["identifier"].ToString();
                    element.AppendChild(subElement_identifier);

                    XmlNode subElement_adress = document.CreateElement("adress");
                    subElement_adress.InnerText = table_Clients.Rows[i]["adress"].ToString();
                    element.AppendChild(subElement_adress);
                 
                }
                document.Save(pathToXml);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
         



Коряво конечно, но получается. Результат
<?xml version="1.0" encoding="utf-8"?>
<head>
<Item number="1">
<id>a</id>
<client>aa</client>
<identifier>00001</identifier>
<adress>Russia Orenburg Komsomol street 44</adress>
</Item>
<Item number="2">
<id>b</id>
<client>bb</client>
<identifier>454</identifier>
<adress>
</adress>
</Item>
</head>
.
Не знаю имеет ли значение для чтение данных или нет но красивее было бы так. (sql for xml auto получаю на как его в с# записать в файл разобраться не получается)
<Clients Id="а" Client="аа" Identifier="00001" Adress="Russia Orenburg Komsomol street 44" />
<Clients Id="b" Client="bb" Identifier="454" />

И теперь главная проблема.
Как прочитать из xml и записать в существующую таблицу.
Я пишу так :

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
 private void button8_Click(object sender, EventArgs e)
        {  CommandText = @"select  id,client,identifier,adress from Customers";
            SqlDataAdapter dataAdapter_Clients = new SqlDataAdapter(CommandText, ConnetionString);
            DataSet ds_Customers = new DataSet();
            DataTable table_Customers = new DataTable();
            ds_Customers.ReadXml(pathToXml);
            dataAdapter_Clients.Update(table_Customers);
        }



Не работает. И ошибок не выдает. По mdsn не получилось разобраться.
Хелп !!!
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38418998
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курсовая? :)
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38419003
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306,

ты сначала разберись что тебе нужно

а то какие-то обрывки мыслей везде
если хочешь читать xml то зачем потом его засовывать в DataTable?
не проще ли сразу в DataTable читать?
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38419056
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation,

я еще плохо работаю с объектами ....
Задача стоит такая - записать таблицу в xml файл. А потом прочитать этот xml и переписать данные в другую таблицу (таблицы не идентичные, поля по разному называются).
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38419057
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

Нет, проект "интеграция данных". Для начала надо научиться записывать данные в xml а потом при необходимости читать их и записывать в соответствующие таблицы.
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421039
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось вот так.

Записываю
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
  try
            {
                XmlDocument document = new XmlDocument();
                document.RemoveAll();
                document.Load(pathToXml);
                CommandText = @"select  Id,Client,Identifier,Adress,Contact,Tel from Clients";
                SqlDataAdapter dataAdapter_Clients = new SqlDataAdapter(CommandText, ConnetionString);
                DataSet ds_Clients = new DataSet();
                DataTable table_Clients = new DataTable();
                dataAdapter_Clients.Fill(table_Clients);
                for (int i = 0; i < table_Clients.Rows.Count; i++)
                {
                    string kol = Convert.ToString(i);
                    XmlNode element = document.CreateElement("Item");
                    document.DocumentElement.AppendChild(element);
                    XmlAttribute attribute = document.CreateAttribute("Number");
                    attribute.Value = (i + 1).ToString();
                    element.Attributes.Append(attribute);

                    XmlNode subElement_id = document.CreateElement("Id");
                    subElement_id.InnerText = table_Clients.Rows[i]["Id"].ToString();
                    element.AppendChild(subElement_id);

                    XmlNode subElement_client = document.CreateElement("Client");
                    subElement_client.InnerText = table_Clients.Rows[i]["Client"].ToString();
                    element.AppendChild(subElement_client);

                    XmlNode subElement_identifier = document.CreateElement("Identifier");
                    subElement_identifier.InnerText = table_Clients.Rows[i]["Identifier"].ToString();
                    element.AppendChild(subElement_identifier);

                    XmlNode subElement_adress = document.CreateElement("Adress");
                    subElement_adress.InnerText = table_Clients.Rows[i]["Adress"].ToString();
                    element.AppendChild(subElement_adress);
                   
                    XmlNode subElement_contact = document.CreateElement("Contact");
                    subElement_adress.InnerText = table_Clients.Rows[i]["Contact"].ToString();
                    element.AppendChild(subElement_contact);
                    
                    XmlNode subElement_tel = document.CreateElement("Tel");
                    subElement_adress.InnerText = table_Clients.Rows[i]["Tel"].ToString();
                    element.AppendChild(subElement_tel);
                }
                document.Save(pathToXml);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }



Читаю и записываю в базу
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
try
                {
            SqlConnection Conn = new SqlConnection(comSTR);
            Conn.Open();
            XPathDocument xml = new XPathDocument(pathToXml);
            XPathNavigator nav = xml.CreateNavigator();

            foreach (XPathNavigator n in nav.Select("/Clients/Item"))
              {
              
                    SqlCommand Command = Conn.CreateCommand();
                    Command.CommandText = "INSERT INTO Customers (Id,Client,Identifier,Adress,Contact,Tel) VALUES (@Id,@Client,@Identifier,@Adress,@Contact,@Tel)";
                    Command.Parameters.Add("@Id", SqlDbType.VarChar, 25);
                    Command.Parameters["@Id"].Value = n.SelectSingleNode("Id").Value;
                    Command.Parameters.Add("@Client", SqlDbType.VarChar, 100);
                    Command.Parameters["@Client"].Value = n.SelectSingleNode("Client").Value;
                    Command.Parameters.Add("@Identifier", SqlDbType.VarChar, 25);
                    Command.Parameters["@Identifier"].Value = n.SelectSingleNode("Identifier").Value;
                    Command.Parameters.Add("@Adress", SqlDbType.VarChar, 50);
                    Command.Parameters["@Adress"].Value = n.SelectSingleNode("Adress").Value;
                    Command.Parameters.Add("@Contact", SqlDbType.VarChar, 50);
                    Command.Parameters["@Contact"].Value = n.SelectSingleNode("Contact").Value;
                    Command.Parameters.Add("@Tel", SqlDbType.VarChar, 25);
                    Command.Parameters["@Tel"].Value = n.SelectSingleNode("Tel").Value;
                    Command.ExecuteNonQuery();
                }   
                
             }
             catch (Exception error)
             {
                 MessageBox.Show("Ошибка записи! " + error.Message);
                 return;
             }
             MessageBox.Show("Информация записана!");
           



Есть в этом что-то рациональное?
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421051
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306Получилось вот так.
Читаю и записываю в базу
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
try
                {
            SqlConnection Conn = new SqlConnection(comSTR);
            Conn.Open();
            XPathDocument xml = new XPathDocument(pathToXml);
            XPathNavigator nav = xml.CreateNavigator();

            foreach (XPathNavigator n in nav.Select("/Clients/Item"))
              {
              
                    SqlCommand Command = Conn.CreateCommand();
                    Command.CommandText = "INSERT INTO Customers (Id,Client,Identifier,Adress,Contact,Tel) VALUES (@Id,@Client,@Identifier,@Adress,@Contact,@Tel)";
                    Command.Parameters.Add("@Id", SqlDbType.VarChar, 25);
                    Command.Parameters["@Id"].Value = n.SelectSingleNode("Id").Value;
                    Command.Parameters.Add("@Client", SqlDbType.VarChar, 100);
                    Command.Parameters["@Client"].Value = n.SelectSingleNode("Client").Value;
                    Command.Parameters.Add("@Identifier", SqlDbType.VarChar, 25);
                    Command.Parameters["@Identifier"].Value = n.SelectSingleNode("Identifier").Value;
                    Command.Parameters.Add("@Adress", SqlDbType.VarChar, 50);
                    Command.Parameters["@Adress"].Value = n.SelectSingleNode("Adress").Value;
                    Command.Parameters.Add("@Contact", SqlDbType.VarChar, 50);
                    Command.Parameters["@Contact"].Value = n.SelectSingleNode("Contact").Value;
                    Command.Parameters.Add("@Tel", SqlDbType.VarChar, 25);
                    Command.Parameters["@Tel"].Value = n.SelectSingleNode("Tel").Value;
                    Command.ExecuteNonQuery();
                }   
                
             }
             catch (Exception error)
             {
                 MessageBox.Show("Ошибка записи! " + error.Message);
                 return;
             }
             MessageBox.Show("Информация записана!");
           



Есть в этом что-то рациональное?
Есть иррациональное.
Надеюсь что вот так будет немного рациональнее
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
try
{
            SqlConnection Conn = new SqlConnection(comSTR);
            Conn.Open();
            XPathDocument xml = new XPathDocument(pathToXml);
            XPathNavigator nav = xml.CreateNavigator();

            SqlCommand Command = Conn.CreateCommand();
            Command.CommandText = "INSERT INTO Customers (Id,Client,Identifier,Adress,Contact,Tel) VALUES (@Id,@Client,@Identifier,@Adress,@Contact,@Tel)";
            Command.Parameters.Add("@Id", SqlDbType.VarChar, 25);
            Command.Parameters.Add("@Client", SqlDbType.VarChar, 100);
            Command.Parameters.Add("@Identifier", SqlDbType.VarChar, 25);
            Command.Parameters.Add("@Adress", SqlDbType.VarChar, 50);
            Command.Parameters.Add("@Contact", SqlDbType.VarChar, 50);
            Command.Parameters.Add("@Tel", SqlDbType.VarChar, 25);

            foreach (XPathNavigator n in nav.Select("/Clients/Item"))
              {
              
                    Command.Parameters["@Id"].Value = n.SelectSingleNode("Id").Value;
                    Command.Parameters["@Client"].Value = n.SelectSingleNode("Client").Value;
                    Command.Parameters["@Identifier"].Value = n.SelectSingleNode("Identifier").Value;
                    Command.Parameters["@Adress"].Value = n.SelectSingleNode("Adress").Value;
                    Command.Parameters["@Contact"].Value = n.SelectSingleNode("Contact").Value;
                    Command.Parameters["@Tel"].Value = n.SelectSingleNode("Tel").Value;
                    Command.ExecuteNonQuery();
                }   
                
             }
             catch (Exception error)
             {
                 MessageBox.Show("Ошибка записи! " + error.Message);
                 return;
             }
            
             MessageBox.Show("Информация записана!");
           
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421280
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жестокий код, конечно :-)

Чем SSIS не устроили непонятно, но ведь можно проще, даже если пытаться все делать руками:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
create table dbo.tmp_1 (
    id int identity(1,1) primary key,
    name nvarchar(128) not null,
    age tinyint null,
    descr nvarchar(max) null
)
GO

INSERT INTO dbo.tmp_1 (
    name,
    age,
    descr
) VALUES (
    N'вася',
    15,
    N'лох'
),
(
    N'ПЕТЯ',
    NULL,
    N'МАУГЛИ'
),
(
    N'коля',
    125,
    NULL
)
GO




Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
        static void Main(string[] args)
        {
            using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["tst"].ConnectionString))
            {
                con.Open();
                try
                {
                    using (var cmd = new SqlCommand("select * from dbo.tmp_1 for xml raw, root('root')", con) {CommandType = CommandType.Text})
                    {
                        String data = (string) cmd.ExecuteScalar();
                        XDocument doc = XDocument.Parse(data);

                        doc.Save(@".\test.xml");
                    }
                }
                finally
                {
                    con.Close();
                }
            }

            Array.ForEach(File.ReadAllLines(@".\test.xml"), Console.WriteLine);
            Console.ReadLine();
        }



результат:
Код: plaintext
1.
2.
3.
4.
5.
<?xml version="1.0" encoding="utf-8"?>
<root>
  <row id="1" name="вася" age="15" descr="лох" />
  <row id="2" name="ПЕТЯ" descr="МАУГЛИ" />
  <row id="3" name="коля" age="125" />
</root>
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421294
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот чтение и запись:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
            XDocument reader = XDocument.Load(@".\test.xml");
            using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["tst"].ConnectionString))
            {
                con.Open();
                try
                {
                    using (var cmd = new SqlCommand("insert into dbo.tmp_1 (name, age, descr) values (@name, @age, @descr)", con) { CommandType = CommandType.Text })
                    {
                        foreach (XElement element in reader.Root.Descendants("row"))
                        {
                            cmd.Parameters.Clear();
                            cmd.Parameters.AddWithValue("@name", element.Attribute("name").GetDbValue());
                            cmd.Parameters.AddWithValue("@age", element.Attribute("age").GetDbValue());
                            cmd.Parameters.AddWithValue("@descr", element.Attribute("descr").GetDbValue());

                            cmd.ExecuteNonQuery();
                        }
                    }
                }
                finally
                {
                    con.Close();
                }
            }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    public static class Extentions
    {
        public static object GetDbValue(this XAttribute attr)
        {
            if (null == attr)
                return DBNull.Value;

            return attr.Value;
        }
    }






Самое интересное, что всего этого не нужно, ибо существует куча других инструментов и подходов
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421581
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79
Код: c#
1.
2.
3.
4.
5.
                    {
                        String data = (string) cmd.ExecuteScalar();
                        XDocument doc = XDocument.Parse(data);

                        doc.Save(@".\test.xml");



Вот тут кусок для иллюстрации Xdocument написал, но для сохранения на диск и его не нужно
Достаточно: File.WriteAllText(@".\test.xml", data);
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421594
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

http://codearticles.ru/home/articleview/1288 The XML data row is truncated at 2,033 characters when you use the SqlDataReader object

This behavior occurs because, for XML results greater than 2,033 characters in length, SQL Server returns the XML in multiple rows of 2,033 characters each.

To resolve this problem, use the ExecuteXmlReader method to read FOR XML queries. For additional information about how to use ExecuteXmlReader with SQL Server FOR XML queries.
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421605
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собирать xml средствами БД - моветон (можно похоливарить на тему ORM, поддержки различных видов СУБД и так далее).
Для инструментария .NET широкое поле для веселья - средств предостаточно. Получили из базы честный IEnumerable<T>, сериазировали в xml. И наоборот. Никакой магии.
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421652
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

И? Я в предыдущей теме ТС все это озвучивал...
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421659
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.. у нашей Тани задача совсем иная - ей надо интерфейс, где можно открыть пришедший XML, понажимать кнопочки, поставить птички: "Здесь читаем, здесь не читаем, тут рыбу заворачиваем" и отправить результат в XML же ... а вы IEnumerable ....
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421673
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79МСУ, И?
ExecuteScalar для возврата xml - зло, нужно использовать ExecuteXmlReader.

Arm79Я в предыдущей теме ТС все это озвучивал...
А зачем тогда тут предлагать говнокод...
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421692
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

почему бы и нет? как иллюстрация - пойдет, всяко лучше, чем дататейблы
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421709
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79почему бы и нет? как иллюстрация - пойдет, всяко лучше, чем дататейблыЛучше чем?

А ежели к примеру нуна с данными ещё какие-нибудь манипуляции дополнительные выполнить, прежде чем их в XML сбрасывать?
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421721
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovArm79почему бы и нет? как иллюстрация - пойдет, всяко лучше, чем дататейблыЛучше чем?

А ежели к примеру нуна с данными ещё какие-нибудь манипуляции дополнительные выполнить, прежде чем их в XML сбрасывать?

А всего не предусмотреть. Я могу таких вариантов еще кучу набросать... универсальные таблетки даже у Нео отсутствуют.

Я уже не раз говорил, но могу повториться, с меня не убудет. SSIS-пакеты наше все. Пользователю не нужно давать разрешение на сопоставление полей в разных документах - это чревато кучей ошибок, неполным функционалом и кучей ненужной работы. Если к SSIS-ам индивидуальная непереносимость, есть XSLT либо T4

Вариант МСУ с десериализацией неплох, но для массовых операций импорта/экспорта отдельные операторы
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421810
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

...вы не забывайте, что версия SQL-сервера может быть Express ... там нет SSIS ... там VB-Script сподручней
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421851
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, SSIS - дело хорошее, но не всегда применимое. Интеграция может быть не только средствами MS SQL, но и сторонними средствами. Как вариант, ты представляешь, сколько стоит лицензия на SAP коннектор? И тем не менее, он куплен и честно используется ERPConnect40.dll для интеграции. Как ты уже понял, SSIS тут идет лесом.
Интеграция средствами .NET - это универсальное решение, не зависящее от типа источников и приемников. Городить петрушку с XML выхлопом на SQL - это, по меньшей мере, садомазохизм.
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421858
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУArm79, SSIS - дело хорошее, но не всегда применимое

Честно говоря, не вижу проблем. Задача состоит из 2 этапов: выгрузка из MS SQL в XML и загрузка XML во внешнюю систему.

SSIS-ом можно выгружать данные в каком угодно формате. А парсить можно чем угодно. Я как раз таки предпочитаю десериализовывать XML в список объектов.
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421868
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79МСУArm79, SSIS - дело хорошее, но не всегда применимое
Честно говоря, не вижу проблем. Задача состоит из 2 этапов: выгрузка из MS SQL в XML и загрузка XML во внешнюю систему.
SSIS-ом можно выгружать данные в каком угодно формате. А парсить можно чем угодно. Я как раз таки предпочитаю десериализовывать XML в список объектов.
Я сожалею, что ты не видишь проблем. А проблема такая: нету никакого у меня MS SQL. Нет никакого у меня SSIS. В одной задаче есть лицензии на инстанс Oracle, в другой - вообще NoSQL Database, в третьей - внешний SOA. Или ты предлагаешь мне купить MS SQL, чтобы радостно использовать SSIS?
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421901
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Я предлагаю не плодить лишних сущностей. ТС четко сказала, у неё MS SQL. Зачем что-то изобретать? Делать супер-пупер экспортер данных с плагинной системой под все случаи жизни?
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421919
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79ТС четко сказала, у неё MS SQL. Зачем что-то изобретать?
Да, но ТС не сказала, какая у нее редакция MS SQL. Редакция Express не включает в себя SSIS. Ты уточнил у ТС, какая у нее редакция перед тем, как советовать SSIS?
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421931
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы уточнил у ТС, какая у нее редакция

Таня, выполните плиз на вашем SQL сервере SELECT @@VERSION и приведите здесь результаты
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38421942
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Зачем что-то изобретать?
действительно непонятно что здесь изобретать
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38463008
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
Dec 28 2012 20:23:12
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38463031
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306Arm79,

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
Dec 28 2012 20:23:12
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

Это Developer Edition. На бою вы тоже будете им пользоваться? Developer Edition функционально идентичен Enterprise. Так что SSIS поддерживается в ПОЛНОМ объеме . Но для SSIS достаточно и версии Standard
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38463067
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

А как пользоваться этим самым SSIS? где то есть поэтапное описание?
...
Рейтинг: 0 / 0
Запись таблицы в XML файл
    #38463079
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запись таблицы в XML файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]