Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
1
.NET 2.x

Выполнение .sql файла из C#

18.07.2013, 16:40. Показов 5879. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Как можно в коде C# запустить на выполнение .sql файл (в файле целая книга для создания отдельной БД).
Пробовал считать все из файла и запихнуть в SqlCommand - не работает, так как там много переносов строк и разных use, go и т.д.

А при попытке восстанавливать базу из кода с помощью бэкапа вот так:
C#
1
RESTORE DATABASE get-in FROM  DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\get-in.bak'
Ругается на не корректный синтаксис возле символа '-'
P.s. сервер SQLExpress.

Все заранее большое спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2013, 16:40
Ответы с готовыми решениями:

Выполнение запроса SQL
И так в прошлой проблеме мы так и не смогли найти решения,именно по этому я прошу вас чтобы вы...

Выполнение SQL запроса.
День добрый. У меня проблема в выполнении sql запроса. Вроде все сделано по тысяче одинаковых...

Выполнение SQL по времени
Кто-нибудь знает, как в SQL Server сделать так, чтобы определенная хранимая процедура запускалась,...

Выполнение SQL запроса
Подключил БД к проекту C# через стандартный источник данных, далее подключил компоненты...

10
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
18.07.2013, 19:48 2
C#
1
2
3
4
5
6
7
8
9
using (var sqlConnection = InitializeConnection())
            {
                string query = @System.IO.File.
                    ReadAllText(@"file.sql", Encoding.GetEncoding(1251));
                using (var cmd = new SqlCommand(@query, sqlConnection))
                {
                    int result = cmd.ExecuteNonQuery();
                }
            }
Попробуй убрать кавычки, use, go и тд.
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
19.07.2013, 10:33  [ТС] 3
То же самое, incorrect syntax near 'GO'
Incorrect syntax near the keyword 'use'.
Could not locate entry in sysdatabase for database 'get-in'. No entry found with that name. Make sure that the name is entered correctly.
0
140 / 137 / 22
Регистрация: 16.02.2012
Сообщений: 453
19.07.2013, 12:33 4
Не выполнит он скрипт с несколькими запросами. Пишите парсер, разбивайте запросы по GO и выполняйте каждый последовательно. Желательно всё в одной транзакции.

Либо просто поставьте ms sql management studio express или используйте sqlcmd.
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
19.07.2013, 12:49  [ТС] 5
Цитата Сообщение от SharpDeveloper Посмотреть сообщение
Не выполнит он скрипт с несколькими запросами. Пишите парсер, разбивайте запросы по GO и выполняйте каждый последовательно. Желательно всё в одной транзакции.

Либо просто поставьте ms sql management studio express или используйте sqlcmd.
Обидно, но sqlcmd так же не хочет отрабатывать, в итоге пришел к выводу что с бэкапом будет меньше мороки.
0
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
19.07.2013, 13:04 6
Так ты удали все go.
0
228 / 95 / 27
Регистрация: 16.04.2013
Сообщений: 315
Записей в блоге: 2
19.07.2013, 14:25 7
ichgo,
Цитата Сообщение от SharpDeveloper Посмотреть сообщение
Не выполнит он скрипт с несколькими запросами. Пишите парсер, разбивайте запросы по GO и выполняйте каждый последовательно. Желательно всё в одной транзакции.
все вменяемые люди так и делают. Слушай советы умных людей.
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
19.07.2013, 14:38  [ТС] 8
Цитата Сообщение от dev-a1056 Посмотреть сообщение
все вменяемые люди так и делают. Слушай советы умных людей.
Этот способ реализации я видел, но выбрал более простой способ (или надо слушать умных людей и городить костыли там где они не нужны?)
0
228 / 95 / 27
Регистрация: 16.04.2013
Сообщений: 315
Записей в блоге: 2
19.07.2013, 14:46 9
ichgo, это не костыль, а переносимое и гибкое решение, но пока грабли по соплям не дадут ты все равно будешь стоять на своем..
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
19.07.2013, 16:14  [ТС] 10
Цитата Сообщение от dev-a1056 Посмотреть сообщение
ichgo, это не костыль, а переносимое и гибкое решение, но пока грабли по соплям не дадут ты все равно будешь стоять на своем..
Ок, это не костыль, но чем восстановление базы из бэкапа хуже чем запуск .sql скрипта который эту самую базу создает?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.07.2013, 22:06 11
ichgo, то, что число способов это сделать не так уж велико. И это не худший из них.
0
19.07.2013, 22:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2013, 22:06
Помогаю со студенческими работами здесь

Выполнение функции t-sql
Есть функция: CREATE FUNCTION . (@UserLogin nvarchar(100) , @UserPassword nvarchar(100))...

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

Выполнение запроса sql
При экспорте или при выполнение запроса, если имя фотографии повторяется(поле ph.naimphoto), его не...

Выполнение процедур на SQL-сервере
Не получается передать параметры процедуре выполняемой на MS SQL. С одним параметром все работает,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru