powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как записать DataTable в SQLServer 2005
9 сообщений из 9, страница 1 из 1
Как записать DataTable в SQLServer 2005
    #38507504
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток стал вопрос о необходимости записать данные из DataTable в SQLServer 2005. Я вышел из положения следующим образом:
Код: 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.
private void SaveToSQL()
        {
            Servers value = null;
            if (elements.TryGetValue("SRV_16", out value)) 
            {

                string dbConnectionString = "Data Source=" + value.NameServer + ";Initial Catalog="+value.BdName+";Persist Security Info=True;User ID="+value.Login+";Password="+value.Password+";";
                SqlConnection con = new SqlConnection(dbConnectionString);
                try
                {
                    con.Open();
                    for (int i = 0; i < _dt.Rows.Count; i++)
                    {
                        string Query = "insert into data_0001 (id,okud,year,period,version,okpo,okato,name,leader_fio,responsible_post,responsible_fio,phone) values('" + this._dt.Rows[i][0] + "','" + this._dt.Rows[i][1] + "','" + this._dt.Rows[i][2] + "','" + this._dt.Rows[i][3] + "','" + this._dt.Rows[i][4] + "','" + this._dt.Rows[i][5] + "','" + this._dt.Rows[i][6] + "','" + this._dt.Rows[i][7] + "','" + this._dt.Rows[i][8] + "','" + this._dt.Rows[i][9] + "','" + this._dt.Rows[i][10] + "','" + this._dt.Rows[i][11] + "')";
                        SqlCommand cmd = new SqlCommand(Query, con);
                        cmd.ExecuteNonQuery();
                    }
                    System.Windows.MessageBox.Show("Сохранено!");
                    con.Close();
                }
                catch (Exception ex)
                {
                    System.Windows.MessageBox.Show(ex.Message);
                }
            }
        }

Это работает но записывать приходится свыше 100 тысяч строк и этот способ занимает очень большой промежуток времени есть ли какой нибудь другой более быстрый способ выполнить задачу? Заранее спасибо.
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38507541
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SqlBulkCopy.
А за передачу параметров конкатенацией - бить нещадно.
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38507561
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ щас буду пробовать.
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38507701
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38507705
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... туплю с утра, прошу прощения .. :)
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38508135
Snak2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры ПавловныSqlBulkCopy.
А за передачу параметров конкатенацией - бить нещадно.

Да я бы и сам хотел избавиться от конкатенации, но как по другому передать динамические параметры я просто не знаю.
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38508192
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
comm.Parameters.Add()

- например
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38508629
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik... туплю с утра, прошу прощения .. :)Вообще-то, если Вы про это 15322454 , то Вы "не тупите": SqlBulkCopy для быстрой массовой вставки данных - это то, что доктор прописал...

Syrex
Код: c#
1.
comm.Parameters.Add()

- напримерЕсли при этом не забыть вынести определение SqlCommand со всеми параметрами за пределы цикла...
А потом не забыть каждому параметру в цикле присвоить "правильное" значение перед выполнением команды...
Наверное, все же SqlDataAdapter будет лучше взять - там лишней "писанины" по-меньше будет...
...
Рейтинг: 0 / 0
Как записать DataTable в SQLServer 2005
    #38508656
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvВообще-то, если Вы про это 15322454
Он про то, что SqlBulkCopy уже предложиле выше процитированного постинга.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как записать DataTable в SQLServer 2005
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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