Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
1

Выполнить скрипт sql по нажатию кнопки

04.04.2016, 12:20. Просмотров 1477. Ответов 5
Метки нет (Все метки)

Здраствуйте. У меня имеется много скриптов sql примерно такого типа Название: script.png
Просмотров: 62

Размер: 5.4 Кб. Подскажите как сделать так, чтобы при нажатии кнопки в C# этот скрипт выполнялся. То есть, чтобы мне не надо было каждый раз открывать этот скрипт вручную и нажимать "ВЫПОЛНИТЬ"??.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2016, 12:20
Ответы с готовыми решениями:

Выполнить запрос SQL по нажатию кнопки
Доброго времени суток, уважаемые форумчане ! такая проблема. я написал запрос...

Выполнить скрипт по нажатию на кнопку
Здравствуйте. У меня есть отдельный файл скрипта MyScript.sql. Мне нужно,...

SQL Выборка из 2-х таблиц по нажатию кнопки и отображению в GridView
Всем здравствуйте! Подскажите пожалуйста как сделать выборку из 2х таблиц...

Отключение wifi по нажатию кнопки
В принципе суть понятна, кидаем кнопку на форму и по нажатии должен отключиться...

Воспроизведение видео по нажатию кнопки
Всем доброго времени суток. У меня вот такой вопрос. Можно ли сделать так,...

5
OwenGlendower
Супер-модератор
Эксперт .NET
10220 / 8824 / 3775
Регистрация: 17.03.2014
Сообщений: 17,740
Записей в блоге: 1
04.04.2016, 13:29 2
Serjey, если скрипты не содержат GO команд, то читаем текст из файла и выполняем через SqlCommand.ExecuteNonQuery.

При наличии GO можно самостоятельно разбивать текст на части и выполнять их по отдельности, но я бы не стал так делать т.к. GO может встретиться в блочном комментарии или другом контесте где он не является разделителем. Поэтому подключаем ссылки на сборку Microsoft.SqlServer.Smo и связанные с ней. Мне пришлось еще добавить ссылки на Microsoft.SqlServer.Management.Sdk.Sfc и Microsoft.SqlServer.ConnectionInfo. Сборки находятся в папке SQL Server. У меня это C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies. Далее пишем простой код.
C#
1
2
3
4
5
using (SqlConnection connection = new SqlConnection(sqlConnectionString))
{
    Server server = new Server(new ServerConnection(connection));
    server.ConnectionContext.ExecuteNonQuery(script);
}
Еще один вариант это использовать библиотеку Subtext.Scripting которую написал Фил Хаак. Она поддерживает GO и параметры SQL Query Analyzer.
0
pincet
1370 / 954 / 130
Регистрация: 23.07.2010
Сообщений: 5,167
04.04.2016, 13:41 3
я бы сделал на клиенте динамику с cte и вставлял бы махом все
Ибо выполнять 100500 однообразных скриптов - императивщина чистой воды.
0
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
04.04.2016, 15:00  [ТС] 4
OwenGlendower, Можете пожалуйста привести пример кода. Мои скрипты не содержат GO команд. Вот я считываю файл,
C#
1
2
3
4
using (StreamReader sr = new StreamReader(File.Open(@"..\..\1.sql", FileMode.Open)))
            {  
                sr.ReadToEnd();   
            }
а дальше как??
0
OwenGlendower
Супер-модератор
Эксперт .NET
10220 / 8824 / 3775
Регистрация: 17.03.2014
Сообщений: 17,740
Записей в блоге: 1
04.04.2016, 15:04 5
Лучший ответ Сообщение было отмечено Serjey как решение

Решение

Serjey,
C#
1
2
3
4
5
6
7
string script = File.ReadAllText(@"..\..\1.sql");
using (var sqlConn = new SqlConnection(@"строка соединения"))
{
    sqlConn.Open();
    var sqlCmd = new SqlCommand(script, sqlConn);
    sqlCmd.ExecuteNonQuery();
}
1
Serjey
1 / 1 / 0
Регистрация: 10.03.2016
Сообщений: 70
04.04.2016, 15:09  [ТС] 6
OwenGlendower, Спасибо, все работает!)
0
04.04.2016, 15:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2016, 15:09

Добавление записей по нажатию кнопки
Подскажите в чем ошибка. Я хочу, чтоб по нажатию кнопки текст из textBox...

Проиграть аудио по нажатию кнопки
Всем привет. У меня такая задача: нужно сделать, чтобы по нажатии кнопки...

Прерывание выполнения обработчика по нажатию кнопки
Я создаю приложение в котором должны выполнятся достаточно объемные вычисления....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru