Страница: 1 | 2 |
|
Вопрос: Базы Данных VB2008/Express
|
Добавлено: 04.07.08 01:23
|
|
Автор вопроса: BG(Алексей)
|
С базами данных никогда не имел дела. А тут начитался Ваших тем и решил поробовать.
Создал приложение, подключил БД(Northwind) и торжествовал до тех пор пока не понял, что запрос(SELECT) не могу выполнить.
Собственно вопрос. Может кто сталкивался.
Если ложу на форму датасет, все работает великолепно.
Но если пытаюсь подключиться к БД с помощью кода, то выскакивает ошибка.
В связи с этим перекопал(на мой взгляд) пол интернета, потратил на это целый день, а результат отрицательный.
Dim sConn As String = "Server=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI"
Dim conn As SqlConnection = New SqlConnection(sConn)
conn.Open()
В чем может быть проблема?
Ответить
|
Номер ответа: 6 Автор ответа: Artyom
Разработчик
Вопросов: 130 Ответов: 6602
|
Профиль | | #6
|
Добавлено: 05.07.08 18:43
|
1) Проверить наличие базы данных Northwind в SQL Server.
Заходишь в SSMS, подключаешься к серверу, разворачиваешь список Databases и смотришь.
2) Проверить статус базы данных Northwind (если база данных переведа в режим Offline, ошибка будет точно такая же.
Заходишь в SSMS, ищешь свою базу, если возле нее значок с красной стрелочкой вниз и в скобках после названия базы написано Offline - значит база данных в режиме Offline.
Жмешь по ней правой кнопкой - Tasks - Bring Online
или
ALTER DATABASE [Nortwind] SET ONLINE
3) Проверить статус пользователя UA\EX
В SSMS разворачиваешь ветвь Security - Logins и ищешь там этого пользователя. Если его нет - нужно добавить. Если есть - зайти в свойства и посмотреть Status (должно быть отмечено Grant и Enabled).
Чтоб добавить пользователя, жмешь правой кнопкой по Logins - New Login, отмечаешь опцию Windows Authentication, через "Search..." ищешь нужный логин, дальше думаю разберешься.
4) У пользователя UA\EX нет прав на доступ к базе данных. Нужно проверить или роль пользователя (например если дать sysadmin то он сможет ко всем базам доступ иметь, но это, разумеется, небезопасно, лучше на вкладке User Mapping дать доступ db_owner к нужной базе данных, а еще лучше более точно настроить права через Permissions.
Если это компьютер разработки, на первых порах достаточно дать пользователю sysadmin и не морочиться.
Ответить
|
Номер ответа: 9 Автор ответа: Artyom
Разработчик
Вопросов: 130 Ответов: 6602
|
Профиль | | #9
|
Добавлено: 06.07.08 01:59
|
Ну проблема у тебя возникла из-за того что у SQL Server Compact Edition и SQL Server Express 2005 разные форматы файлов данных, и даже разные расширения (у SQL Server Express и SQL Server - .sdf и .ldf)
С SQL Server 2005 идет новая база данных-пример - Adwenture Works
Если у тебя ее нету, скачать можно здесь:
http://codeplex.com/SqlServerSamples#databases
Тебе нужны Sample Databases
Есть база даных Northwind, но под SQL Server 2000
http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46a0-8da2-eebc53a68034&isplayLang=en
Формат данных совместим с SQL Server 2005, т.е. если у тебя получится извлечь базу из msi, то файл данных можно будет подключить в SQL Server.
Может ли кто нибудь посоветовать нормальную книгу по изучению и програмированию БД?
Честно говоря не знаю что посоветовать, нужно вобщем изучать архитектуру реляционных СУБД, я до всего доходил на собственном опыте...
А так - читаю только SQL Server Books Online (документация по SQL Server)
Если БД находится в приложении, подключение к ней будет выглядет так же?
Что значит "БД находится в приложении"?
Если хочешь использовать SQL Server Compact Edition, то там все по-другому, другие классы нужно использовать для подключения, и там, насколько я помню, строка подключения не нужна, только путь к базе данных указываешь.
Если SQL Server Express, и сам файл .mdf лежит в папке с твоим приложением, то строка подключения будет выглядеть примерно так:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=MyFile.mdf;User Instance=true
Ответить
|
Номер ответа: 12 Автор ответа: Artyom
Разработчик
Вопросов: 130 Ответов: 6602
|
Профиль | | #12
|
Добавлено: 06.07.08 06:33
|
SQL Server CE - это клиентская СУБД.
Основные сценарии - использование на мобильных устрйоствах и десктопных приложениях, в которых нет необходимости в серверной СУБД типа "настоящего" SQL Server.
SQL Server CE работает на настольных и на мобильных Windwos.
Размер самой СУБД около 1.7 МБ.
Бесплатная, согласно лицензии, насколько я помню, можно свободно распространять со своим приложением.
Плюс, если не ошибаюсь, может работать даже без установки самого компонента - просто достаточно носить с приложением одну сборку, но по документации такой вариант не рекомендовался.
По сравнению с SQL Server, SQL Server CE, разумеется, серьезно урезан в функциональности.
Из основных отличий - нет поддержки хранимых процедур и полнотекстового поиска, затруднены сценарии совместного использования базы данных.
Ограничение на размер базы данных - 2 или 4 ГБ.
Кстати, с SQL Server CE идет какой-то механизм синхронизации с SQL Server
Работа с SQL Server CE подобна работе с SQL Server.
Управление базонй данных вполняется через SQL Server Management Studio (раньше нужно было установить специальный компонент чтоб SSMS могла работать с базами "компактного" сервера, сейчас, видимо, этот компонент уже встроен, по крайней мере в SSMS 2008 я вижу кнопку для подключения к базе SQL Server CE).
Для работы с SQL Server CE нужно подключить сборку которая идет в комплекте, далее используются классы аналогичные SqlCommand, SqlDataReader, но специфичные для SQL Server CE.
В Visual Studi 2008 уже есть поддержка SQL Server CE, добавить такую базу в приложение можно прямо через Add New Item (она называется Local Database), и управлять прямо из Visual Studio.
Огорчает что нет поддержки со стороны LinQ 2 SQL, хотя вроде бы обещали сделать.
Я этот продукт использовал, и довольно успешно.
SQL Server 2000/2005/2008 (выходит во втором полугодии этого года) - это серьезный тяжелый серверный пакет, в состав которого входят сама СУБД и дополнительные компоненты, инструменты.
Основные компоненты:
Собственно СУБД
Компоненты Business Intelligence:
* Integration Services
* Reporting Services
* Analisys Services
Инструменты:
SQL Server Management Studio
SQL Profiler
Есть и другие, но это наиболее часто используемые, остальные можно посмотреть в Books Online.
MSDE, SQL Server Express 2005/2008 - это урезаные версии SQL Server 2000/2005/2008 соответственно.
Основной сценарий - использование в серверных продуктах в которых нет высоких требований к СУБД, в десктопных приложениях.
Эти продукты бесплатны.
В состав SQL Server Express входит только сама СУБД с ограничениями на размер базы данных (2 или 4 гигабайта), изначально без поддержки полнотекстового поиска, но позже полнотекстовый поиск все-таки добавили, изначально никаких дополнительных компонентов с SQL Server Express не шло, но позже добавили Reporting Services и SQL Server Management Studio Express.
Файлы данных SQL Server и SQL Server Express совместимы.
Если речь идет о мобильном приложении или о небольшом десктопном приложении, лучше всего использовать SQL Server CE, так как он самый "легкий", прост в развертывании.
Более сложные десктопные приложения и простые серверные приложения можно запускать на SQL Server Express Edition - в нем присутствуют все функции, необходимые для полноценной работы. Разумеется, этот вариант подходит если вписываетесь в ограничение на размер базы данных.
Еще один плюс этого варианта - при необходимости очень легко перейти на SQL Server - достаточно перенести файл данных под управление другой СУБД.
Ну, и если речь идет о серьезном серверном продукте, то выбираем флагман SQL Server, почему, думаю, объяснять не надо
Ответить
|
Страница: 1 | 2 |
Поиск по форуму