Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80

Выгрузка в .txt путем sql запроса

19.11.2013, 11:43. Показов 5707. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прохожу стажировку в одной компании. Дали код, сказали сделать еще и выгрузку в txt я уже больше недели бьюсь не могу с этим ничего сделать(( На 189 строке выгрузку сделать.
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
using System.Data.OracleClient;
using System.IO;
 
using SpreadsheetGear;
using SpreadsheetGear.Advanced.Cells;
 
using System.Threading;
 
namespace QueryDataToExcel
{
    public partial class Form1 : Form
    {
        private string path;
        private string fileNameBase;
        private string fileNameExt;
        private string connectionString;
        private string sqlCommand;
        private Int32 maxRowsOnFile;
        private bool showHeader;
 
        private string message = "";
        private string errMessage = "";
        private string errMessageFull = "";
 
        private Thread thread = null;
        private System.Windows.Forms.Timer timer = null;
 
        private const Int32 MaxRowsOnXLSXFile = 1000000;
        private const Int32 MaxRowsOnXLSFile = 65000;
 
        public Form1()
        {
            InitializeComponent();
 
            ExportFileTypeDropDownList.Items.Add(".xlsx");
            ExportFileTypeDropDownList.Items.Add(".xls");
            ExportFileTypeDropDownList.Items.Add(".txt");
            ExportFileTypeDropDownList.SelectedIndex = 0;
 
            timer = new System.Windows.Forms.Timer();
            timer.Tick += new EventHandler(Checker);
            timer.Interval = 100;
            timer.Start();
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            timer.Stop();
            timer.Dispose();
        }
 
        private void Checker(object sender, EventArgs e)
        {
            if (thread != null &&
                (thread.ThreadState == ThreadState.Running || thread.ThreadState == ThreadState.Background))
            {
                StartButton.Enabled = false;
                StatusLabel.Text = message;
            }
            else
            {
                StartButton.Enabled = true;
                StatusLabel.Text = "Завершено";
            }
        }
 
        private void StartButton_Click(object sender, EventArgs e)
        {
            StartButton.Enabled = false;
 
            try
            {
                #region "Инициализация параметров"
 
                if (String.IsNullOrEmpty(ExportPathTextBox.Text.Trim()))
                    path = AppDomain.CurrentDomain.BaseDirectory;
                else
                    path = ExportPathTextBox.Text.Trim();
 
                if (String.IsNullOrEmpty(ExportFileNameBaseTextBox.Text.Trim()))
                    fileNameBase = "file";
                else
                    fileNameBase = ExportFileNameBaseTextBox.Text.Trim();
 
                fileNameExt = ExportFileTypeDropDownList.Items[ExportFileTypeDropDownList.SelectedIndex].ToString();
 
                // example - "User Id=RSYST; Password=111; Data Source=REPTST"
                connectionString =
                    "User Id=" + ExportDBLoginTextBox.Text.Trim() + "; " +
                    "Password=" + ExportDBPasswordTextBox.Text.Trim() + "; " +
                    "Data Source=" + ExportDBDatabaseTextBox.Text.Trim();
 
                sqlCommand = ExportSQLCommandRichTextBox.Text.Trim().Trim(";".ToCharArray());
                maxRowsOnFile = Convert.ToInt32(ExportMaxRowsOnFileUpDown.Value);
                showHeader = ExportShowHeaderCheckBox.Checked;
 
                #endregion
 
                thread = new Thread(new ThreadStart(Export));
                thread.IsBackground = true;
                thread.Name = "Export thread";
                thread.Start();
            }
            catch (Exception ex)
            {
                StartButton.Enabled = true;
                MessageBox.Show(ex.ToString());
            }
        }
 
        private void Export()
        {
            using (OracleConnection conn = new OracleConnection(connectionString))
            {
                message = "Установка соединения";
                try
                {
                    conn.Open();
                    errMessage = "";
                    errMessageFull = "";
                }
                catch (Exception ex)
                {
                    errMessage = "Не удалось установить соединение с базой";
                    errMessageFull = errMessage + ":" + Environment.NewLine + ex.ToString();
 
                    MessageBox.Show(errMessageFull);
 
                    return;
                }
 
                try
                {
                    using (OracleCommand command = new OracleCommand(sqlCommand, conn))
                    {
                        message = "Выполнение запроса";
                        using (OracleDataReader reader = command.ExecuteReader())
                        {
                            for (int fileNum = 1; ; fileNum++)
                            {
                                message = "Создание файла №" + fileNum.ToString();
                                string fileNameOne = Path.Combine(Path.GetFullPath(path),
                                                                    Path.ChangeExtension(Path.GetFileName(fileNameBase), fileNameExt));
 
                                string fileNameMany = Path.Combine(Path.GetFullPath(path),
                                                                Path.ChangeExtension(Path.GetFileName(fileNameBase) + "_" + fileNum.ToString().PadLeft(5, '0'), fileNameExt));
 
                                if (!ExportOneFile(reader, maxRowsOnFile, fileNameMany, showHeader, fileNameExt))
                                {
                                    if (fileNum == 1 && File.Exists(fileNameMany))
                                    {
                                        if (File.Exists(fileNameOne))
                                            File.Delete(fileNameOne);
 
                                        File.Move(fileNameMany, fileNameOne);
                                    }
 
                                    break;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    try { conn.Close(); }
                    catch { }
                }
            }
        }
 
        private bool ExportOneFile(OracleDataReader reader, Int32 maxRowsOnFile, string fileName, bool showHeader, string fileNameExt)
        {
            if (fileNameExt == ".txt")
            {
             //ТУТ выгрузку в txt реализовать
            }
 
            IWorkbook workBook = Factory.GetWorkbook();
            IWorksheet workSheet = workBook.Worksheets[0];
 
            Int32 curRow = 0;
 
            Type[] columnType = new Type[reader.FieldCount];
 
 
            for (int i = 0; i < reader.FieldCount; i++)
            {
                columnType[i] = reader.GetFieldType(i);
            }
 
            if (showHeader)
            {
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    workSheet.Cells[curRow, i].Value = reader.GetName(i);
                    workSheet.Cells[curRow, i].NumberFormat = "@";
                }
 
                curRow++;
            }
 
            bool hasData = true;
            int dataRow;
            string messageBase = message;
 
            IValues workSheetValues = workSheet as IValues;
            DateTime excelDateTimeMinValue = new DateTime(1900, 1, 1, 0, 0, 1);
            DateTime excelDateTimeMaxValue = DateTime.MaxValue.AddSeconds(-1);
 
            for (dataRow = 0; dataRow < maxRowsOnFile; dataRow++, curRow++)
            {
                message = messageBase + String.Format(" ({0})", dataRow);
                if (!reader.Read())
                {
                    hasData = false;
                    break;
                }
 
                for (int column = 0; column < reader.FieldCount; column++)
                {
                    try
                    {
 
                        object value = reader.GetValue(column);
 
                        //select * from ybessonov.cdbrep7365_part1
 
                        Type type = columnType[column];
                        if (type == typeof(decimal) ||
                            type == typeof(float) ||
                            type == typeof(double) ||
                            type == typeof(int))
                        {
                            decimal val = 0;
                            if (Decimal.TryParse(
                                value == DBNull.Value || value == null
                                    ? ""
                                    : value.ToString().
                                          Replace(".",
                                                  System.Globalization.NumberFormatInfo.CurrentInfo.
                                                      CurrencyDecimalSeparator).
                                          Replace(",",
                                                  System.Globalization.NumberFormatInfo.CurrentInfo.
                                                      CurrencyDecimalSeparator), out val))
                            {
                                //Пишем как число
                                workSheetValues.SetNumber(curRow, column, (double)val);
                            }
                            else
                            {
                                //Просто как строку пишем
                                workSheetValues.SetText(curRow, column,
                                                        value == DBNull.Value || value == null
                                                            ? ""
                                                            : value.ToString());
                            }
                        }
                        else if (type == typeof(DateTime))
                        {
                            if (value != DBNull.Value && value != null)
                            {
                                if (((DateTime)value) >= excelDateTimeMinValue &&
                                    ((DateTime)value) <= excelDateTimeMaxValue)
                                    workSheetValues.SetNumber(curRow, column,
                                                              workSheet.Workbook.DateTimeToNumber((DateTime)value));
                                else
                                    workSheetValues.SetText(curRow, column,
                                                            ((DateTime)value).ToString("dd.MM.yyyy HH:mm:ss"));
                            }
                        }
                        else
                        {
                            workSheetValues.SetText(curRow, column,
                                                    value == DBNull.Value || value == null
                                                        ? ""
                                                        : value.ToString());
                        }
                    }
                    catch (Exception ex)
                    {
                        string exc = string.Format("Ошибка произошла на строке-{0} в поле-{1}   ", dataRow + 1,
                                                   column + 1);
                        MessageBox.Show(exc + ex.ToString());
                    }
                }
            }
 
            if (dataRow > 0)
            {
                if (File.Exists(fileName))
                    File.Delete(fileName);
 
                workSheet.UsedRange.Columns.AutoFit();
 
                for (int i = 0; i < reader.FieldCount; i++)
                    workSheet.Cells[workSheet.UsedRange.RowCount - dataRow, i, workSheet.UsedRange.RowCount - 1, i].
                        NumberFormat = TypeToNumberFormat(columnType[i]);
 
                workBook.SaveAs(fileName,
                                fileNameExt.ToLower().Contains("xlsx")
                                    ? FileFormat.OpenXMLWorkbook
                                    : FileFormat.Excel8);
            }
 
            workBook.Close();
            return hasData;
        }
 
        private string TypeToNumberFormat(Type type)
        {
            if (type == typeof(int))
                return @"0";
            else if (type == typeof(DateTime))
                return "dd.mm.yyyy";
            else if (type == typeof(float) ||
                type == typeof(double) ||
                type == typeof(decimal))
                return @"0.00";
 
            return "@";
        }
 
        private void FolderBrowseButton_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(ExportPathTextBox.Text))
                folderBrowserDialog.SelectedPath = ExportPathTextBox.Text;
 
            if (folderBrowserDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                ExportPathTextBox.Text = folderBrowserDialog.SelectedPath;
        }
 
        private void ExportFileTypeDropDownList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ExportFileTypeDropDownList.Items[ExportFileTypeDropDownList.SelectedIndex].ToString().ToLower().Contains("xlsx"))
                ExportMaxRowsOnFileUpDown.Maximum = MaxRowsOnXLSXFile;
            else
                ExportMaxRowsOnFileUpDown.Maximum = MaxRowsOnXLSFile;
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2013, 11:43
Ответы с готовыми решениями:

Выгрузка отчета или запроса в файл txt
Добрый день, подскажите как выгрузить информацию с отчета или запроса в файл txt ? Для последующей печати на матричном принтере copy to prn.

Выгрузка запроса sql в шаблон ворд
Добрый вечер. Уважаемые участники просьба подсказать, как можно выгрузить результат запроса в аксесс (таблица) в шаблон ворд....

Выгрузка из SQL бази запроса в EXcel
есть в SQL базе таблица Отчетов с полем 'ЗАпрос' в которое под определенное наз отчета вписывается свой запрос... Есть модуль выгрузки в...

32
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
22.11.2013, 20:17
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от RaymanTLT Посмотреть сообщение
не выгружает шапку таблицы
Вот эту что ли

PROGRAM TABLE_NAME TABLE_VIEW NAME INSTANCE_ TYPE_ CLASS_NAME IS_PANEL IS_INSERT IS_DELETE IS_EDIT CARD_ONLY_VIEW VDAT VOPER TABLE_NAME_REF TABLE_STRUCT IS_CARD_ALL_FIELD NET_SERVICE NET_ACTION NET_PARAM NET_ACTION_UPDATE NET_ACTION_INSERT NET_ACTION_DELETE NET_GSERVICE IS_SELECT_ARBITRARY IS_START IS_START_SELECT ASSEMBLY_VERSION ASSEMBLY_NAME IS_DYNAMIC_COLUMNS
0
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80
22.11.2013, 22:28  [ТС]
Grishaco, да, ее.
0
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80
24.11.2013, 14:43  [ТС]
Grishaco, вроде за шапку showHeader отвечает. Поможете реализовать в совокупе с тем, что есть?
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
24.11.2013, 17:27
Держите

Кликните здесь для просмотра всего текста

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
DataTable schemaTable = reader.GetSchemaTable();
 
            var columns = new List<string>();
            foreach (DataRow dr in schemaTable.Rows)
            {
                columns.Add(dr["ColumnName"].ToString());
            }
 
 
 
            //Раскомментируйте одну из строк ниже
            //using(var file = File.CreateText(fileName))
            using (var file = File.CreateText(fileNameExt))
 
            {
                if (showHeader)
                {
                    file.WriteLine("PROGRAM\tTABLE_NAME\tTABLE_VIEW\tNAME\tINSTANCE_\tTYPE_\tCLASS_NAME\tIS_PANEL\tIS_INSERT\tIS_DELETE\tIS_EDIT\tCARD_ONLY_VIEW\tVDAT\tVOPER\tTABLE_NAME_REF\tTABLE_STRUCT\tIS_CARD_ALL_FIELD\tNET_SERVICE\tNET_ACTION\tNET_PARAM\tNET_ACTION_UPDATE\tNET_ACTION_INSERT\tNET_ACTION_DELETE\tNET_GSERVICE\tIS_SELECT_ARBITRARY\tIS_START\tIS_START_SELECT\tASSEMBLY_VERSION\tASSEMBLY_NAME\tIS_DYNAMIC_COLUMNS");
                }
 
                while (reader.Read())
                {
                    string row = string.Empty;
                    foreach (var column in columns)
                    {
                        row += reader[column] != DBNull.Value ? reader[column] : string.Empty + "\t";
                    }
                    file.WriteLine(row);
                }
            }
        }
1
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80
24.11.2013, 17:45  [ТС]
Grishaco, скорее всего с шапкой как-то не так. Потому что я могу запросом вызвать другую таблицу. И там другая шапка будет. Нужно именно, что бы выгрузило шапку, как вот мы остальной текст выгрузили.
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
24.11.2013, 17:49
Цитата Сообщение от RaymanTLT Посмотреть сообщение
И там другая шапка будет
Это точно, только вот я не пойму, вы просто вставляете код и не разбираетесь в нем?

C#
1
2
3
4
5
6
7
8
9
if (showHeader)
            {
                string title = string.Empty;
                foreach (var column in columns)
                {
                    title += column + "\t";
                }
                file.WriteLine(title);
            }
1
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80
25.11.2013, 13:56  [ТС]
Grishaco, я сейчас просто не за рабочей машиной. Спасибо большущее. Завтра все протестирую.

Добавлено через 19 часов 51 минуту
Grishaco, сделал выгрузку немного по-другому. Вроде работает. Что скажите?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while (reader.Read())
                    {
                        string row = string.Empty;
                        foreach (var column in columns)
                        {
                            if (reader[column] == DBNull.Value)
                            {
                                file.Write("\t");
                            }
                            else
                            {
                                file.Write(reader[column]);
                                file.Write("\t");
                            }
                        }
                        file.WriteLine(row);
                    }
Добавлено через 13 минут
И да. Настройку локали, так можно сделать? Или по-другому?
C#
1
2
3
row = Thread.CurrentThread.CurrentCulture.NumberFormat.PercentDecimalSeparator;
Thread.CurrentThread.CurrentCulture.NumberFormat.PercentDecimalSeparator = ",";
Thread.CurrentThread.CurrentCulture.NumberFormat.PercentDecimalSeparator = row;
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
25.11.2013, 14:01
Вот эти 2 строчки не нужны

C#
1
2
3
string row = string.Empty;
...
file.WriteLine(row);
Цитата Сообщение от RaymanTLT Посмотреть сообщение
Настройку локали, так можно сделать? Или по-другому?
Вот здесь не знаю, не делал.
1
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80
25.11.2013, 14:09  [ТС]
Grishaco, убрал эти строки начало как-то неправильно выгружать. Странно.
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
25.11.2013, 14:12
Цитата Сообщение от RaymanTLT Посмотреть сообщение
Grishaco, убрал эти строки начало как-то неправильно выгружать. Странно.
Вы не переводите строку, сделайте так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while (reader.Read())
                    {
                        foreach (var column in columns)
                        {
                            if (reader[column] == DBNull.Value)
                            {
                                file.Write("\t");
                            }
                            else
                            {
                                file.Write(reader[column]);
                                file.Write("\t");
                            }
                        }
                        file.WriteLine();
                    }
1
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80
27.11.2013, 15:12  [ТС]
Сможете помочь добавить еще и это? Потому, что я не совсем понимаю как это сделать. Вроде и без этого все прекрасно работает. разделитель строк - перевод строки (chr(10)&chr(13)). И еще текстоввые поля, содержащие символы-разделители, очищаем: заменяем на пробелы.
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
27.11.2013, 15:35
Цитата Сообщение от RaymanTLT Посмотреть сообщение
перевод строки (chr(10)&chr(13))
Это уже есть и делается здесь

C#
1
file.WriteLine();
Цитата Сообщение от RaymanTLT Посмотреть сообщение
И еще текстоввые поля, содержащие символы-разделители, очищаем: заменяем на пробелы.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
foreach (var column in columns)
                        {
                            if (reader[column] == DBNull.Value)
                            {
                                file.Write("\t");
                            }
                            else
                            {
                                string result = reader[column].ToString();
            result = result.Replace("\r", " ").Replace("\n", " ").Replace("\t", " ");
            file.Write(result);
                                file.Write("\t");
                            }
                        }
1
 Аватар для RaymanTLT
3 / 3 / 0
Регистрация: 24.10.2013
Сообщений: 80
27.11.2013, 17:52  [ТС]
Поработал с локалью, добавил try catch, в общем теперь выгрузка выглядит так. Вроде бы все учел. Спасибо за помощь. Программу ожидает внутренняя проверка, как проверят, я обязательно сообщу.
Кликните здесь для просмотра всего текста
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
if (fileNameExt == ".txt")
            {
 
                DataTable schemaTable = reader.GetSchemaTable();
                var columns = new List<string>();
                foreach (DataRow dr in schemaTable.Rows)
                {
                    columns.Add(dr["ColumnName"].ToString());
                }
                StreamWriter file = File.CreateText(fileName);                
                    
                if (showHeader)
                {
                    string title = string.Empty;
                    foreach (var column in columns)
                    {
                        title += column + "\t";
                    }
                    file.WriteLine(title);
                }
 
                int ret = 0;
                string net = Thread.CurrentThread.CurrentCulture.NumberFormat.PercentDecimalSeparator;
                if (net != ",")
                { 
                    var cInfo = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;
 
                    cInfo.NumberFormat.NumberDecimalSeparator = ",";
                    cInfo.NumberFormat.CurrencyGroupSeparator = ",";
                    cInfo.NumberFormat.PercentDecimalSeparator = ",";
 
                    Thread.CurrentThread.CurrentCulture = cInfo;
                    Thread.CurrentThread.CurrentUICulture = cInfo;
 
                }
                try
                { 
                    while (reader.Read())
                    {
                        foreach (var column in columns)
                        {
                            if (reader[column] == DBNull.Value)
                            {
                                file.Write("\t");
                            }
                            else
                            {
                                string result = reader[column].ToString();
                                result = result.Replace("\r", " ").Replace("\n", " ").Replace("\t", " ");
                                file.Write(result);
                                file.Write("\t");
                            }
                        }
                        file.WriteLine();
                        ret++;
 
                        // Для облегчения нагрузки проверяем только каждую 50 итерацию
                        if (ret % 50 == 0)
                        {
                            file.Flush();
                            FileInfo f = new FileInfo(fileName);
 
                            if (f.Length >= MAX_FILE_LENGTH || ret >= maxRowsOnFile)
                            {                                
                                file.Close();
                                file = null;
                                GC.Collect();
                                return true;
                            }
                        }
                    }
                    file.Flush();
                    file.Close();
                    file = null;
                    GC.Collect();
 
                    return false;
                }
                finally
                {
                    if (net != ",")
                    { 
                        CultureInfo cInfo1 = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;
 
                        cInfo1.NumberFormat.NumberDecimalSeparator = net;
                        cInfo1.NumberFormat.CurrencyGroupSeparator = net;
                        cInfo1.NumberFormat.PercentDecimalSeparator = net;
 
                        Thread.CurrentThread.CurrentCulture = cInfo1;
                        Thread.CurrentThread.CurrentUICulture = cInfo1;
                    }
                }             
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2013, 17:52

Выгрузка результатов SQL запроса в Excel
День добрый, столкнулся с такой проблемой. Есть sql запросы, которые формируют отчеты, необходимо результаты закинуть в excel. ...

Результаты sql-запроса вывести в txt
здравствуйте . подскажите как сделать выгрузку из sql по запросу в txt блокнот. пробую вот так сдесь adoquery11 создан на форме...

Как вывести результат запроса select в txt-файл? (Transact-SQL)
Как вывести результат запроса select в txt-файл? (Transact-SQL)

Выгрузка таблицы из sql в excel - MS SQL Server 2005
MS SQL Server 2005, Среда SQL Server Management Studio Express. Проблема в выгрузке таблицы из sql в excel. запрос sql: ...

Выгрузка из mysql в txt
Всем привет! Нужна помощь по такому вопросу! Идея заключается в следующем. Любой пользователь сайта может добавить свою статью, потом за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru