powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Модуль записи закрыт
7 сообщений из 7, страница 1 из 1
Модуль записи закрыт
    #38422184
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.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
 private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection Conn = new SqlConnection(comSTR);
                Conn.Open();
          
                XmlTextWriter textWritter = new XmlTextWriter(pathToXml, Encoding.UTF8);
                textWritter.WriteStartDocument();
                SqlCommand Command = Conn.CreateCommand();
                // получить список таблиц по которым установлено соответсвие
                CommandText = "Select distinct table_source,table_receiver from Iintegration";
                SqlDataAdapter dataAdapter_Integration_Table = new SqlDataAdapter(CommandText, ConnetionString);
                DataSet ds_Integration_Table = new DataSet();
                DataTable table_Integration_Table = new DataTable();
                dataAdapter_Integration_Table.Fill(table_Integration_Table);
               
                for (int i = 0; i < table_Integration_Table.Rows.Count; i++)
                {
                 
                          textWritter.WriteStartElement(table_Integration_Table.Rows[i]["table_receiver"].ToString());
                          textWritter.WriteEndElement();
                          textWritter.Close();
                          XmlDocument document = new XmlDocument();
                          document.Load(pathToXml);
                
                       
                           CommandText = @"select source,receiver from Iintegration where table_source='"+table_Integration_Table.Rows[i]["table_source"].ToString()+"'";
                           SqlDataAdapter dataAdapter_Details = new SqlDataAdapter(CommandText, ConnetionString);
                           DataSet ds_Details = new DataSet();
                           DataTable   table_Details = new DataTable();
                           dataAdapter_Details.Fill(table_Details);
                           string str="";          
                            for (int j = 0; j <  table_Details.Rows.Count; j++)
                             {
                                 if (j == table_Details.Rows.Count - 1)
                                 { str += table_Details.Rows[j]["source"].ToString() + " "; }
                                 else
                                 { str += table_Details.Rows[j]["source"].ToString() + " ,"; }
                             }
                        
                           CommandText = @"select "+str +"from "+table_Integration_Table.Rows[i]["table_source"].ToString();
                           SqlDataAdapter dataAdapter_Info = new SqlDataAdapter(CommandText, ConnetionString);
                           DataSet ds_Info = new DataSet();
                           DataTable   table_Info = new DataTable();
                           dataAdapter_Info.Fill(table_Info );
                             
                           
                            for (int k = 0; k <  table_Info .Rows.Count; k++)
                             {
                                 XmlNode element = document.CreateElement("Item");
                                 document.DocumentElement.AppendChild(element);
                                 XmlAttribute attribute = document.CreateAttribute("Number");
                                 attribute.Value = (i + 1).ToString();
                                 element.Attributes.Append(attribute);
                                 for (int j = 0; j < table_Details.Rows.Count; j++)
                                 {
                                     //название поля
                                     XmlNode subElement_id = document.CreateElement(table_Details.Rows[j]["receiver"].ToString()); 
                                     //значение поля
                                     subElement_id.InnerText = table_Info.Rows[k][table_Details.Rows[j]["source"].ToString()].ToString();
                                     
                                     element.AppendChild(subElement_id);
                                 }
                               
                             } 
                           
                            
                        document.Save(pathToXml);
                    
                }
            
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }



Получается записывает данные по первому прохожу цикла,
Код: c#
1.
 for (int i = 0; i < table_Integration_Table.Rows.Count; i++)


А дальше не дописывает в файл вылетает сообщение
...
Рейтинг: 0 / 0
Модуль записи закрыт
    #38422225
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306, потому что ты закрываешь XmlTextWriter путем вызова textWritter.Close();
...
Рейтинг: 0 / 0
Модуль записи закрыт
    #38422512
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

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

... если работаете с DataTable, то передергивать затвор, то бишь идти по ней циклом можно через

foreach DataRow myRow in DataTable.Rows

..примерно так
...
Рейтинг: 0 / 0
Модуль записи закрыт
    #38423121
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306,

таня не занимайся фигнёй
не нужно тебе лазить по xml-ю используй сариализацию
...
Рейтинг: 0 / 0
Модуль записи закрыт
    #38423919
Tanya_0306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation,

не пойму я как сериализовывать объект. Примеры которые пытаюсь переделать под свою задачу - не срабатывают.
Если можешь - подскажи .... А то получается накрутила я сейчас циклов....
...
Рейтинг: 0 / 0
Модуль записи закрыт
    #38423924
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tanya_0306,

Может чем поможет, может на мысль натолкнёт?
14953466
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Модуль записи закрыт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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