Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Volrajas
Заблокирован
1

Ошибка при создании бд ADO.NET

09.11.2015, 09:13. Просмотров 1385. Ответов 24
Метки нет (Все метки)

при создании бд вываливается ошибка

$exception {"База данных "Factory" не существует. Убедитесь, что ее имя введено правильно."} System.Data.SqlClient.SqlException

делаю все по FAQ, только код создания бд со всеми таблицами подгружаю из ресурса

Добавлено через 1 минуту
ошибка вываливает при вызове ExecuteNonQuery

вот если надо код который передаю при создании объекта SqlCommand
T-SQL
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
CREATE DATABASE [Factory]
 
use Factory;
 
CREATE TABLE [Product]
(ID_Product INTEGER PRIMARY KEY NOT NULL,
Name CHAR(30) NOT NULL);
 
CREATE TABLE [Model]
(ID_Model INTEGER PRIMARY KEY NOT NULL,
ID_Product INTEGER FOREIGN KEY REFERENCES [Product](ID_Product) NOT NULL,
Name CHAR(30) NOT NULL,
Price INTEGER CHECK (Price < 10000) NOT NULL);
 
CREATE TABLE [StoreKeeper]
(ID_SK INTEGER PRIMARY KEY NOT NULL,
Name CHAR(30) NOT NULL,
Name2 CHAR(30) NOT NULL,
Family CHAR(30) NOT NULL);
 
CREATE TABLE [Receipt]
(ID_Receipt INTEGER PRIMARY KEY CHECK(ID_Receipt < 10000) NOT NULL,
ID_Model INTEGER FOREIGN KEY REFERENCES [Model](ID_Model) NOT NULL,
ID_SK INTEGER FOREIGN KEY REFERENCES [StoreKeeper](ID_SK) NOT NULL,
Date DATE DEFAULT GETDATE() NOT NULL,
Count INTEGER CHECK (Count < 10000) NOT NULL);
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2015, 09:13
Ответы с готовыми решениями:

Ошибка при создании бд ADO.NET
пытаюсь создать бд ADO.NET, код полностью скопировал из этой темы using System; using...

Ошибка при добавлении модели ADO.NET EDM
При добавлении к проекту модели ADO.NET EDM, выбрасывает ошибку: В результате вызова компанента...

При добавдении ADO.NET Entity Data Model в проект вылетает ошибка
Создал Dynamic Data Web Application, пытаюсь добавить ADO.NET Entity Data Model, выскакивает окно...

Ошибка при подключении к серверу или моя первая программа ADO.net
Всем добрый вечер, читаю книгу Троелсона, и в главе посвященной АДО.НЕТ есть пример программы...

Добавляю ADO.NET Entity Data Model, при работе с библиотекой классов происходит ошибка
Создаю проект (Windows Forms) добавляю в него локальную базу данных (*.sdf) с одной таблицей, затем...

24
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 09:53 2
SQL
1
2
CREATE DATABASE [Factory]
 GO
0
Volrajas
Заблокирован
09.11.2015, 10:06  [ТС] 3
Igr_ok, $exception {"Неправильный синтаксис около ключевого слова "use".\r\nБаза данных "Factory" не существует. Убедитесь, что ее имя введено правильно."} System.Data.SqlClient.SqlException

Добавлено через 1 минуту
я вот думаю может сначала выполнить отдельно CREATE DATABASE как в образце, закрыть подключение, открыть снова и потом уже создавать таблицы?

Добавлено через 4 минуты
это интересно я сейчас закомментировал 1-4 строки, и судя по всему она создалась, но в чем прикол я ее не вижу !!! ее нет в папке DATA где установлен sql server, а ведь все бд обычно создаются там... так где же она? при попытке повторного создания пишет что такие таблицы уже есть в этой бд, так что она точно создалась, вот только где хз...
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 10:06 4
Цитата Сообщение от Volrajas Посмотреть сообщение
я вот думаю может сначала выполнить отдельно CREATE DATABASE как в образце, закрыть подключение, открыть снова и потом уже создавать таблицы?
Команда GO вызывает немедленное выполнение кода. Этого должно быть достаточно. Во всяком случае в SSMS ваш код с моей добавкой отработал нормально и БД с таблицами создалась.
0
09.11.2015, 10:06
Volrajas
Заблокирован
09.11.2015, 10:10  [ТС] 5
Цитата Сообщение от Igr_ok Посмотреть сообщение
БД с таблицами создалась.
но где она создалась??? я ее даже в SQL Server Management Studio не вижу
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 10:13 6
Цитата Сообщение от Volrajas Посмотреть сообщение
я ее даже в SQL Server Management Studio не вижу
Полагаю, что кнопочку "Обновить" для баз данных вы нажимали.
Тогда нужно смотреть строку подключения. Возможно,у вас несколько экземпляров SQL Server на компе, и вы не в том ищете.
0
Volrajas
Заблокирован
09.11.2015, 10:17  [ТС] 7
Цитата Сообщение от Igr_ok Посмотреть сообщение
Полагаю, что кнопочку "Обновить" для баз данных вы нажимали.
Тогда нужно смотреть строку подключения. Возможно,у вас несколько экземпляров SQL Server на компе, и вы не в том ищете.
C#
1
Data Source=(local)\SQLEXPRESS
Добавлено через 1 минуту
кстати а можно как то указывать чтобы она создавалась не черте где, а в папке с проектом? (exe-шником)
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 10:33 8
Цитата Сообщение от Volrajas Посмотреть сообщение
кстати а можно как то указывать чтобы она создавалась не черте где, а в папке с проектом? (exe-шником)
Да.
SQL
1
2
3
4
5
6
USE master;
GO
CREATE DATABASE Sales
ON 
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf')
Запустите поиск в папке Program Files по *.mdf. Ваша БД должна быть где-то там.
0
Volrajas
Заблокирован
09.11.2015, 10:51  [ТС] 9
Цитата Сообщение от Igr_ok Посмотреть сообщение
SQL
1
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf'
а можно сделать именно там где находится .exe-шник? т.е. динамически? есть какая то функция в SQL которая показывает текущую папку? или добавлять это только из студии? тогда сложнее, придется искать эту подстроку в запросе и вставлять туда...
Цитата Сообщение от Igr_ok Посмотреть сообщение
Запустите поиск в папке Program Files по *.mdf. Ваша БД должна быть где-то там.
не нашло ее!!! я в шоке куда она делась

Добавлено через 6 минут
Цитата Сообщение от Igr_ok Посмотреть сообщение
saledat.mdf
кстати говоря лично у меня рядом с бд всегда валяются еще *.ldf файлы, может это тоже надо указывать как то?
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 10:54 10
Цитата Сообщение от Volrajas Посмотреть сообщение
а можно сделать именно там где находится .exe-шник?
Application.StartupPath для C#.
Цитата Сообщение от Volrajas Посмотреть сообщение
кстати говоря лично у меня рядом с бд всегда валяются еще *.ldf файлы, может это тоже надо указывать как то?
Он создается автоматом со значениями по умолчанию.
0
Volrajas
Заблокирован
09.11.2015, 11:06  [ТС] 11
опять эта хрень

$exception {"Неправильный синтаксис около конструкции "GO".\r\nНеправильный синтаксис около конструкции "GO".\r\nБаза данных "Factory" не существует. Убедитесь, что ее имя введено правильно."} System.Data.SqlClient.SqlException

Добавлено через 3 минуты
может мне теперь и Data Source надо менять?
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 11:33 12
Цитата Сообщение от Volrajas Посмотреть сообщение
вот если надо код который передаю при создании объекта SqlCommand
Дайте код формирования скрипта в программе.
0
Volrajas
Заблокирован
09.11.2015, 13:37  [ТС] 13
Цитата Сообщение от Igr_ok Посмотреть сообщение
Дайте код формирования скрипта в программе.
да там точно правильно все вставляется я проверял отладчиком, ну вот если хотите
C#
1
2
3
4
var pattern = @"FILENAME = '";
CreateDBQueryString = Properties.Resources.DbCreate.Insert(
    Properties.Resources.DbCreate.IndexOf(pattern) + pattern.Length, 
    Environment.CurrentDirectory + @"\Factory.mdf");
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 14:18 14
Цитата Сообщение от Volrajas Посмотреть сообщение
да там точно правильно все вставляется я проверял отладчиком, ну вот если хотите
Дайте значение CreateDBQueryString после выполнения приведенного выше кода. Или сами его проверьте в SSMS.
0
Volrajas
Заблокирован
09.11.2015, 14:22  [ТС] 15
Цитата Сообщение от Igr_ok Посмотреть сообщение
Дайте значение CreateDBQueryString после выполнения приведенного выше кода. Или сами его проверьте в SSMS.
я же говорю я в отладчике проверил, там нормально все вставляется, т.е. путь в кавычках все как надо, но вот эта ошибка все равно вываливается...
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 14:36 16
Цитата Сообщение от Volrajas Посмотреть сообщение
я же говорю я в отладчике проверил, там нормально все вставляется
У вас ошибка в скрипте. Отладчиком проверить скрипт вы не могли.
0
Volrajas
Заблокирован
09.11.2015, 15:12  [ТС] 17
Цитата Сообщение от Igr_ok Посмотреть сообщение
У вас ошибка в скрипте. Отладчиком проверить скрипт вы не могли.
какая конкретно???

Добавлено через 16 минут
Цитата Сообщение от Igr_ok Посмотреть сообщение
Отладчиком проверить скрипт вы не могли.
в смысле не мог? я вижу в отладчике переменную CreateDBQueryString и вижу что там все правильно
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 15:19 18
Цитата Сообщение от Volrajas Посмотреть сообщение
я вижу в отладчике переменную CreateDBQueryString и вижу что там все правильно
Цитата Сообщение от Volrajas Посмотреть сообщение
опять эта хрень
$exception {"Неправильный синтаксис около конструкции "GO".\r\nНеправильный синтаксис около конструкции "GO".\r\nБаза данных "Factory" не существует. Убедитесь, что ее имя введено правильно."} System.Data.SqlClient.SqlException
Если у вас всё правильно, значит у вас уже нет этой ошибки. Удачи
0
Volrajas
Заблокирован
09.11.2015, 15:54  [ТС] 19
Цитата Сообщение от Igr_ok Посмотреть сообщение
Если у вас всё правильно, значит у вас уже нет этой ошибки. Удачи
да блин я же не спорю может быть и ошибка, но я ее не вижу, что я могу сделать???

Добавлено через 12 минут
ну вот если хотите сами смотрите, это значение переменной CreateDBQueryString, копировал из отладчика так что переносы все в виде эскейп последовательностей...
T-SQL
1
USE master\r\nGO\r\n\r\nCREATE DATABASE [Factory]\r\nON (NAME = Factory_dat, FILENAME = 'C:\\Server\\Server\\bin\\Debug\\Factory.mdf')\r\nGO\r\n\r\nUSE Factory;\r\nGO\r\n\r\nCREATE TABLE [Product]\r\n(ID_Product INTEGER PRIMARY KEY NOT NULL,\r\nName CHAR(30) NOT NULL);\r\n\r\nCREATE TABLE [Model]\r\n(ID_Model INTEGER PRIMARY KEY NOT NULL,\r\nID_Product INTEGER FOREIGN KEY REFERENCES [Product](ID_Product) NOT NULL,\r\nName CHAR(30) NOT NULL,\r\nPrice INTEGER CHECK (Price < 10000) NOT NULL);\r\n\r\nCREATE TABLE [StoreKeeper]\r\n(ID_SK INTEGER PRIMARY KEY NOT NULL,\r\nName CHAR(30) NOT NULL,\r\nName2 CHAR(30) NOT NULL,\r\nFamily CHAR(30) NOT NULL);\r\n\r\nCREATE TABLE [Receipt]\r\n(ID_Receipt INTEGER PRIMARY KEY CHECK(ID_Receipt < 10000) NOT NULL,\r\nID_Model INTEGER FOREIGN KEY REFERENCES [Model](ID_Model) NOT NULL,\r\nID_SK INTEGER FOREIGN KEY REFERENCES [StoreKeeper](ID_SK) NOT NULL,\r\nDate DATE DEFAULT GETDATE() NOT NULL,\r\nCount INTEGER CHECK (Count < 10000) NOT NULL);
0
Igr_ok
542 / 437 / 204
Регистрация: 04.08.2015
Сообщений: 1,196
09.11.2015, 15:55 20
Цитата Сообщение от Volrajas Посмотреть сообщение
что я могу сделать???
Уже писал
Цитата Сообщение от Igr_ok Посмотреть сообщение
Дайте значение CreateDBQueryString после выполнения приведенного выше кода. Или сами его проверьте в SSMS.
0
09.11.2015, 15:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2015, 15:55

Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net
Всем привет! Нужно написать клиент-серверное приложение на основе Microsoft Sql Server 2005...

Подстановка значений по ID при запросе Insert/Update ADO.NET
Работаю с ADO.NET Есть 2 таблицы Goods(GoodID,Name,TypeID) и Types(TypeID,TypeName) Есть...

Есть ли минусы в замене Access на MySQL при использовании ADO.NET в работе с ними
Подскажите, пожалуйста - есть ИС, состоящая из приложения Windows и комплекта БД Access,...


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

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

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