Подключение к бд в папке программы (Visual Studio, C#)

LazyDeer

Делаю программу для конкурса, в которой многое завязано на БД. Все базы подключаются через сервер компьютера, но я пришел к мысли, что при переносе программы на другой компьютер с иным сервером бд будет недоступна и дальше окна "Авторизация" никто никогда так и не уйдет. Решил кинуть .mdf файлы(в Debug программы, куда кидал excel документы) и путем долгого поиска на форумах и сайтах наконец смог сделать так, чтобы информация добывалась и отладчик не плевался. Но стоило только перекинуть все файлы программы на другой компьютер, как опять вышла ошибка.Что я не так делаю? Может все верно и дело в другом компьютере(хотя я не уверен, что так может быть)? Как манипулировать бд в папках программы, а не подключаться к серверу?
private void RegisForm_Load(object sender, EventArgs e)
 {
 con = new System.Data.SqlClient.SqlConnection();
 con.ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;
 AttachDbFilename=|DataDirectory|log.mdf;
 Integrated Security=True";
 dd();
 }
 public void dd()
 {
 con.Open();
 SqlCommand smd = con.CreateCommand();
 smd.CommandType = CommandType.Text;
 smd.CommandText = "select * from Users";
 smd.ExecuteNonQuery();
 DataTable ds = new DataTable();
 SqlDataAdapter sa = new SqlDataAdapter(smd);
 sa.Fill(ds);
 foreach (DataRow dr in ds.Rows)
 {
 comboBox1.Items.Add(dr["rights"].ToString());
 }
 con.Close();
 }
13 ответов

LazyDeer

Для LoaclDB должен быть установлен локальный SQL Server, просто перекинуть файлы недостаточно


LazyDeer

Shocker.Pro,имеется в виду наличие, скажем, Microsoft SQL Server с созданным в нем подключении?Или я опять не так понял, ахаха.... ха...


LazyDeer

Курите ссылку


LazyDeer

Shocker.Pro,я только-только заметил, пока не отправил сообщениеСпасибо, постараюсь разобраться


LazyDeer

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


LazyDeer

Roman Mejtes,Не могу( В условиях конкурса четко указано, что с Visual Studio нужно использовать исключительно Microsoft SQL Server.


LazyDeer

Shocker.Pro,это не работаетвсе равно выдает ошибку


LazyDeer

нужно использовать исключительно Microsoft SQL Server.
ну так и не парьтесь тогда с LocalDB, подключайтесь обычным образом через строку подключения


LazyDeer

Shocker.Pro,
public static SqlConnection con = new SqlConnection(@"Data Source=HADRUS-PC;Initial Catalog=log;Integrated Security=True");
?Разве тогда на другом компьютере все будет нормально работать при наличии на нем Microsoft SQL Server?Простите, что я так туплю, но с подобным в VS еще никогда не имел дел...


LazyDeer

Делаю программу для конкурса,
Я надеюсь, что Вы этот конкурс не выиграете.Ибо Вами написана такая тупизна , что волосы дыбом встают


LazyDeer

Cat2,Я и не пытаюсь выиграть и без вас знаю, что понимаю все это ужасно.Но я не вижу ничего плохого в том, чтобы задавать тупые вопросы, если благодаря ответам на них я разберусь в непонятных мне вещах.


LazyDeer

Но я не вижу ничего плохого в том, чтобы задавать тупые вопросы, если благодаря ответам на них я разберусь в непонятных мне вещах.
Для того, чтобы разобраться в непонятных вещах, нужно читать учебники, а не задавать тупые вопросы. После прочтения можно задавать умные, когда осталось что-то непонятное - это нормально.Берем и читаем например это https://metanit.com/sharp/adonet/