Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
18 / 18 / 6
Регистрация: 10.09.2011
Сообщений: 83
1

Как прописать строку подключения к БД, чтобы программа работала на любом компьютере

12.05.2012, 14:06. Просмотров 6885. Ответов 11
Метки нет (Все метки)

Недавно начал осваивать работы с базами данных , и в данный момент столкнулся с конкретной проблемой , :
на форме есть datagridview к которому я привязал бд ( вот таким способом : нажав на dgv choose data sourse -> add project data sourse -> data base ->new connection , сама же бд хранится на диске C ) , через tableadapter методом update я успешно сохраняю все данные , и все вроде бы замечательно , но при открытии приложения на другом компьютере оно ругается на подключение к бд ( хотя на другом компьютере на тот же диск C копирую бд ) .
Как я понял мне нужно программно подключится к бд и через datasourse подключить её к dgv , тоесть еще и создать программно dataset . На самом деле долго думал перерыл форум но ничего толком то и не понял единственное что выяснил это сроку подключения бд к проекту (и то не уверен):
C#
1
2
3
4
SqlConnection sqlConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Info\centrumdatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
            sqlConnection.Open();
// а вот тут наверное привязать её\загрузить в dgv
            sqlConnection.Close();
Если возможно , помогите правильно привязать dgv к бд , или где можно почитать подробные примеры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2012, 14:06
Ответы с готовыми решениями:

Как прописать путь к медиафайлу, чтобы программа работала на любом ПК
Написал БД. И когда загружается БД идет картинка и фоновая музыка. Только вот беда. Когда...

Как сделать чтобы программа работала независимо от местоположения БД на компьютере
Здравствуйте. В своей программе на C# я соединяюсь с БД таким образом String...

Как правильно скомпилировать чтобы программа работала на компьютерах, на которых не установлен билдер(чтобы работала база данных)
Сделана база данных на BDE при сохранении скомпилировал "Relese", на другом пк где не установлен...

что нужно сделать чтобы программа с БД работала на другом компьютере?
есть программа с БД. когда открываешь на другом компе ругается и не работает. выходил из положения...

11
213 / 202 / 85
Регистрация: 09.05.2012
Сообщений: 494
12.05.2012, 18:38 2
точно немогу сказать поможет ли это вам. но попробуйте добавить вашу базу данных через меню Данные - Добавить новый источник данных(Data - Add new data source - вроде так в англ. версии)
создате новою строку соединения и в диалоге выберете файл бд. после этих действий вам будет предложено скопировать файл бд в проект.
если вы обратите внимание на строку соединения тогда она уже будет не такой:
Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Info\centrumdatabase .mdf; ...
а примит следущий вид:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\centrum database.mdf; ...
и при копиляции по умолчанию файл бд будет находится в каталоге с программой. то есть путь к бд уже будет относительный, а не точный.
что касается доступа к строке соединения в коде:
C#
1
2
3
SqlConnection sqlConnection =
new SqlConnection(Properties.Settings.Default.<имя_вашей_соединения>);
// имя то которое вы вводили при подключении к бд.
к сожалению я всех подробностей не знаю. и делал я подобное при подключении к бд access. но sql помоему так же подключается. может кто более опытный в этом деле из форумчан вам подскажет.
0
580 / 367 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
13.05.2012, 11:34 3
Вопрос на засыпку:
А на другом компе установлен Sql Server с именем 'SQLEXPRESS' ?
0
14 / 14 / 7
Регистрация: 23.11.2009
Сообщений: 63
13.05.2012, 11:47 4
Добавляете прикреплённые файлы в папку где лежит exe прграмма \bin\Debug\прога.exe

Далее в проекте (обозреватель решений) добавляете ссылку пройдя в папку с программой и выбрав \bin\Debug\System.Data.SQLite.dll

добавим

C#
1
using System.Data.SQLite;
C#
1
2
3
4
        public static string SQLite()
        {
            return  @"Data Source=" + Application.StartupPath + @"\dase\full3.db3;Pooling=true;FailIfMissing=false";
        }
Базу бросте в тоже место где у вас exe прога у меня это папка \dase
и всё теперь она будет везде работать от 7 до xp
1
14 / 14 / 7
Регистрация: 23.11.2009
Сообщений: 63
13.05.2012, 11:51 5
забыл прикрепить
0
Вложения
Тип файла: 7z sqlite3.7z (536.9 Кб, 44 просмотров)
1224 / 1034 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
13.05.2012, 12:15 6
dilec, а причём тут sqlite?
0
18 / 18 / 6
Регистрация: 10.09.2011
Сообщений: 83
13.05.2012, 13:12  [ТС] 7
sigmov , нет на другом не стоит sql .
dilec , спасибо попробую так сделать, позже отпишусь как всё проверю.
0
6016 / 3423 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
13.05.2012, 14:18 8
Цитата Сообщение от shika07 Посмотреть сообщение
нет на другом не стоит sql
Вот тебе и ответ. БД SQLServer не работают без установленной СУБД
1
18 / 18 / 6
Регистрация: 10.09.2011
Сообщений: 83
13.05.2012, 14:47  [ТС] 9
Цитата Сообщение от nio Посмотреть сообщение
Вот тебе и ответ. БД SQLServer не работают без установленной СУБД
тоесть можно спокойно привязать бд к датагриду в конструкторе , а на другом пк установить sql server и будет всё отлично работать , если это так то есть вопрос :
нужно установить тот же sql server в котором создавалась бд , или sql lite будет достаточно?
0
6016 / 3423 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.05.2012, 00:17 10
shika07, ты наверное не совсем понимаешь назначение SQL Server. Назначение заложено в названии: это серверная СУБД. Для локального использования лучше взять что-нибудь для этого предназначенное.
Цитата Сообщение от shika07 Посмотреть сообщение
или sql lite будет достаточно?
Нужен именно SQL Server, можно версией поновее
1
580 / 367 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
14.05.2012, 05:01 11
dilec, sqlite(который используете Вы) и sqlserver, который юзает shika07 это совершенно разные СУБД.

sqlite - это embedded(встраеваемая) СУБД. Требует dll'ку для работы и *.db3 файлик c базой.
sqlserver - серверная СУБД. Требует установленной версии MS Sql Server.

Интересно:
Можно ли обработать удаленным sqlsever'ом локальный *.mdf файл с БД?


Совет для shika07 - посмотрите в сторону sqlserver compact - она так же является встраеваемой.
0
14 / 14 / 7
Регистрация: 23.11.2009
Сообщений: 63
14.05.2012, 08:02 12
Цитата Сообщение от sigmov Посмотреть сообщение
dilec, sqlite(который используете Вы) и sqlserver, который юзает shika07 это совершенно разные СУБД.
Это я в курсе мне надо было просто указать это, но судя из первого поста lowercase, больше похоже что ему нужна локальная база, нежели удалённая, если программа для привата то врядле кому то понравиться устанавливать дополнительные программы для её работы.

По мне так для удалённой удобнее использовать Mysql server,
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2012, 08:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать чтобы база данных заработала на любом компьютере
Как сделать чтобы база данных заработала на любом компьютере без приминения всяких настроек? Делаю...

Как скомпилировать программу на XE8 чтобы запускалась на любом компьютере ?
Как скомпилировать программу на XE8 чтобы запускалась на любом компьютере ?

Как прописать строку подключения к БД Access
Выдаёт предупреждение при попытки соединить VS с базой данных Акцесс. Вот текст сообщения:...

Какую команду надо прописать для того чтобы работала маршрутизация?
Есть сервре c Windows Server 2003, две сетевые карты, на одной адрес 192.168.10.100, на второй...


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

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

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