Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > простейшая БД


Автор: MFSham 17.9.2006, 22:53
Столкнулся с такой проблемой: надо создать простейшую БД на C# (MySQL). 
Скажу сразу, что с БД особо не работал.

Базу данных я то создал, но как теперь ее подключить к проекту?
Можно, конечно, использовать SQL Server вместе с SqlClient и OleDb, но
как использовать ее без SQL Server'a?
Т.е. я хочу, чтобы моя БД лежала в директории программы и работола без
SQL Server'a. 

А может я вообще несу полную чушь?  smile 
Если что не так, то поправьте меня, или киньте полезную ссылочку...

Автор: alir 18.9.2006, 09:56
Цитата
киньте полезную ссылочку... 

http://www.connectionstrings.com/

Автор: MFSham 18.9.2006, 22:07
Был я уже там =)

Я тут так прикинул, что можно все данные можно хранить в формате XML. 
Геморроя меньше, но вот как осуществить поиск по такой БД... В этом случае MySQL 
со своими запросами рулит...

Млин... Палка о двух концах...

Автор: mr.DUDA 19.9.2006, 09:26
Есть такие БД как http://www.sqlite.org/ и http://www.firebirdsql.org/, возможно они подойдут (почти уверен).

Автор: KAFLAN 28.9.2006, 03:05
Цитата(MFSham @ 18.9.2006,  22:07)
Был я уже там =)

Я тут так прикинул, что можно все данные можно хранить в формате XML. 
Геморроя меньше, но вот как осуществить поиск по такой БД... В этом случае MySQL 
со своими запросами рулит...

Млин... Палка о двух концах...

Самым очевидным советом является использование Microsoft Access, в этом случае ничего кроме файла БД с собой таскать не нужно, при этом даже сам MS Access на машине конечного пользователя можно не устанавливать, так как для работы с MS Access базой необходимым и достаточным условием является наличие движка MS Jet 4.0 который идет в поставке с Windows 2000, XP, Vista.

Если же всё же тянет в сторону XML, то тут вполне приемлемым по скорости (при разумных объемах данных) решением будет использование встроенного в .net движка XPath (см. System.XML)  + по максимуму использовать возможность метода Compile.

Автор: thomas 4.10.2006, 00:25
Цитата(MFSham @  17.9.2006,  22:53 Найти цитируемый пост)
Т.е. я хочу, чтобы моя БД лежала в директории программы и работола без
SQL Server'a. 


MFSham, 
Привет.
Я не волшебник, а только учусь, но могу сказать следующее.

Учусь в вечерней вышке на программиста .NET. Сейчас начали проходить работу с БД.
Так вот у меня на машине установлена одна только 2005-я студия. SQL server снес, учили это дело в прошлом семестре. В примерах с которыми мы работаем используем OleDb.
Соединение, просмотр, изменения значений и сохранение новых данных их датасета в базу. Файл базы лежит в директории проекта. 
Если проще сказать, то при соединении с базой указываешь OleDbCommand.ConnectionString="путь к твоей базе" и делай с ней что хошь. Сервер тебе не нужен.
Программы написанные в студии работают на машинах с установленной Framework.NET. Установка сервера или Аccess не обязательна.


Автор: mr.DUDA 4.10.2006, 11:13
Цитата
Установка сервера или Аccess не обязательна.

Это потому, что аксессовский движок MS Jet ставится вместе с .NET Framework или с виндой (как говорили выше)

Автор: thomas 4.10.2006, 13:45
MFSham, 
Привет.
Кстати есть еще одна ОЧЕНЬ простая возможность организовать базу данных в директории программы.
Обрати свое внимание на файлы типа  random.
Ты в своей программе можешь прописать структуры которые содержат нужные тебе данные (например по каждому клиенту, товару, предприятию) и сохранять их в файлы.
А твоя программа будет открывать, читать, изменять(если необходимо), добавлять новые recotds и сохранять эти данные.
Для небольшого кол-ва клиентов, товаров, предприятий - очень удоно и размерчик не большой. Только нужно поинить о том что в random файле все records должны быть ФИКСИРОВАННОЙ длинны. А это значит, что ты когда объявляешь элементы структуры типа String должен будешь использовать string фиксированной длинны.
И доступ к файлам содержащим до 10-ти тысяч records довольно быстрый. По моему это самое то если нужно хранить данные на 1-2 тысячи.

Всего доброго.  smile 

ЗЫ есть примеры кода на VB2005, переписать на C# не очень сложно. Главное понять принцип файловой организации,  и продумать что и как хранить. 

Автор: MFSham 4.10.2006, 21:58
Цитата(thomas @  4.10.2006,  13:45 Найти цитируемый пост)
MFSham, Привет.

Здаровенько  smile 
Цитата(thomas @  4.10.2006,  13:45 Найти цитируемый пост)
Кстати есть еще одна ОЧЕНЬ простая возможность организовать базу данных в директории программы.Обрати свое внимание на файлы типа  random.

Цитата(thomas @  4.10.2006,  13:45 Найти цитируемый пост)
Для небольшого кол-ва клиентов, товаров, предприятий - очень удоно и размерчик не большой.

Полностью согласен с тобой. Для определенного круга задач это очень хороший выход. Но вся функциональность твоей базы ложится на твои руки. 

А при работе со стандартными БД SQL запросы намного облегчают жизнь. Да и изобретать велосипед на свою голову как-то не хочется.
З.Ы. Все-таки после долгих мучений я пришел к исходному: MySQL база вместе с SQL Server 2005. Все прекрасно работает...

Автор: thomas 5.10.2006, 08:58
Цитата(MFSham @ 4.10.2006,  21:58)
 MySQL база вместе с SQL Server 2005. 

Привет.
Слушай, может я чего не допонимаю,
база данных MySQL , а сервер MS SQL 2005.

Вообще конечно для сложной БД с взаимосвязанными таблицами способ сохранения данных в rnd файлы не подходит.
И самый приемлемый способ это продумать организацию бызы данных и создать её программно(OleDb), сохранив файл БД в директорию программы.
И будет тебе счастье.


ЗЫ и если будет нужда, то пиши в личку. С удовольствием пообсуждаю с тобой практические примеры кодирования. Мы сейчас в школе как раз и проходим работу с БД из C#.
Или прямо на мыло. Ящик я контролирую регулярно.

Автор: mr.DUDA 5.10.2006, 23:12
Цитата(MFSham @  4.10.2006,  21:58 Найти цитируемый пост)
З.Ы. Все-таки после долгих мучений я пришел к исходному: MySQL база вместе с SQL Server 2005. Все прекрасно работает...

Что-то я тоже ничего не понял: как это, два движка БД вместе ? Есть такое понятие "СУБД" (система управления базами данных), учат его ещё в школе - так вот обе аббревиатуры MySQL и SQL Server относятся к понятию СУБД. То есть, масло масленное: мы говорим о том, что наше приложение использует и MySQL и SQL Serrver, хотя совместить их в принципе невозможно, т.к. это принципиально два различных движка баз данных, со своими системами хранения физической БД, со своими диалектами SQL (например, в SQL Server используется всем известный диалект T-SQL, а в MySQL - собственный, не помню как называется...). В общем, это не то smile.

Автор: MFSham 6.10.2006, 21:11
Цитата(mr.DUDA @  5.10.2006,  23:12 Найти цитируемый пост)
 В общем, это не то 

Полностью согласен. Че-то я не то написал. SQL Server с созданныими не нем БД. Так будет правильно. 

Автор: Groff 8.11.2006, 00:57
Извините что поднял не совсем новую тему, но по данной теме у меня возник вопрос.
Необходимо напрямую работать с базой находящейся в файле database.mdf
Делаю так:
Код
OleDbConnection conn = new OleDbConnection(@"Provider=SQLOLEDB;Data Source=D:\database.mdf");
conn.Open();

Выкидывает OleDbException: "Invalid authorization specification". В чем может быть дело?
Integrated Security ставил и в true, и в false.

Автор: mr.DUDA 8.11.2006, 12:18
Groff, Модератор: Пожалуйста, один топик - один вопрос.

Строки соединения с Access есть http://www.connectionstrings.com/.

Автор: botusai 29.9.2007, 14:07
У меня такой вопрос. А как создать БД, используя только Visual Studio 2005 (и MS SQL SERVER 2005). Я создаю новый проект Database, в Server Explorer выбираю "Create New SQL Server Database..." далее надо указать сервер, к котрому пойдет соединение, но вот проблема - в предложенном списке ни одного сервера нет. У меня стоит MS SQL SERVER 2005 (который установлен вместе с самой "студией", т.е. это MSDE), я слышал, что он не позволяет устанавливать удаленные соединения, но мне-то этого и не надо. Так вот, я пишу в поле servername следующее localhost//SQLEXPRESS (добрые люди посоветовали), жму Test Connection и вываливается ошибка следующего характера (прикреплено)

Что делать? т.е. как правильно прописать имя сервера?

Автор: thomas 29.9.2007, 17:04
botusai, 
Привет.
Идем http://msdn2.microsoft.com/en-us/vbasic/bb466226.aspx и смотрим видео как создать БД.
Даже если ты пишешь на C# то дизайнер работает одинаково.
Удачи.  smile 

Автор: botusai 29.9.2007, 17:36
Всё, я уже разобрался, просто надо было писать не localhost//SQLEXPRESS, а localhost\SQLExpress

Автор: Crusader777 5.1.2011, 15:27
Что-то читал-читал ничего так и не понял :(
Нужна простейшая база данных, для C#, 2 поля, 2000 записей. Делать самому типизированный файл - лень, какую бд можно использовать, чтобы прога работала под ВыньХП без установки? Как ее создать? Как приконнектиться?
Работал 2 года с Firebird и 3 года с MySQL - но их ставить надо, а мне для такого мизера (2000 записей) жалко ресурсы есть.

Автор: Kaerus 5.1.2011, 15:44
Бери http://ru.wikipedia.org/wiki/SQLite - не ошибешься (ее используют FireFox, Opera и еще куча других программ)
Под .NET http://sqlite.phxsoftware.com/

Вот еще прога для администрирования http://sqliteadmin.orbmu2k.de/ или если нужна поддержка русских символов http://www.sqliteexpert.com/ (версия Personal - бесплатная)

Автор: jonie 5.1.2011, 16:36
SQL Server CE тоже неплох.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)