Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 39
1
MS SQL

Перенос приложения на другой компьютер

10.12.2018, 23:46. Показов 738. Ответов 5

Есть приложение Windows Forms, на моём компе всё работает. БД на localDB. Отправляю проект преподавателю, а у него падает с ошибкой.
Собственно код приложения:
Кликните здесь для просмотра всего текста
C#
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace IPR2_fuzzySearch_V2
{
    public partial class Form1 : Form
    {
 
        public string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Dictionary.mdf;Integrated Security=True";
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void buttonTranslate_Click(object sender, EventArgs e)
        {
 
            SqlConnection connection = new SqlConnection(connectionString);
            SqlCommand command;
            SqlDataReader mdr = null;
            string myQuery = "SELECT * FROM dbo.Words";
            SqlDataAdapter adapter = new SqlDataAdapter(myQuery, connection);
 
 
            if (radioButton1.Checked)
            {
 
 
                try
                {
 
                    connection.Open();
                    DictionaryDataSet ds = new DictionaryDataSet();
                    adapter.Fill(ds, "Words");
 
                    string engWord = null;
 
                    string[] enword = new string[ds.Tables[0].Rows.Count];
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        enword[i] = ds.Tables[0].Rows[i]["English"].ToString();
                    }
 
                    for (int i = 0; i < enword.Length; i++)
                    {
                        int cost = LevenshteinDistance.Compute(textBox1.Text.ToLower(), enword[i]);
                        if (cost <= 1)
                        {
                            engWord = enword[i];
                            break;
                        }
                    }
                    string selectQuery = "SELECT * FROM Words WHERE English='" + engWord + "'";
                    command = new SqlCommand(selectQuery, connection);
 
                    mdr = command.ExecuteReader();
 
                    if (mdr.Read())
                    {
                        string result = mdr.GetString(2);
                        textBox2.Text = result;
                    }
                    else
                    {
                        MessageBox.Show("No data found!");
                    }
 
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString()); return;
                }
                finally
                {
                    if (mdr != null)
                        mdr.Close();
                }
                
            }
 
            else if (radioButton2.Checked)
            {
 
 
                try
                {
                    connection.Open();
                    DictionaryDataSet ds = new DictionaryDataSet();
                    adapter.Fill(ds, "Words");
 
                    string ruWord = null;
 
                    string[] ruword = new string[ds.Tables[0].Rows.Count];
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        ruword[i] = ds.Tables[0].Rows[i]["Russian"].ToString();
                    }
 
                    for (int i = 0; i < ruword.Length; i++)
                    {
                        int cost = LevenshteinDistance.Compute(textBox1.Text.ToLower(), ruword[i]);
                        if (cost <= 1)
                        {
                            ruWord = ruword[i];
                            break;
                        }
                    }
                    string selectQuery = "SELECT * FROM Words WHERE Russian=N'" + ruWord + "'";
                    command = new SqlCommand(selectQuery, connection);
 
                    mdr = command.ExecuteReader();
 
                    if (mdr.Read())
                    {
                        string result = mdr.GetString(1);
                        textBox2.Text = result;
                    }
                    else
                    {
                        MessageBox.Show("No data found!");
                    }
 
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString()); return;
                }
 
                finally
                {
                    if (mdr != null)
                        mdr.Close();
                }
 
            }
 
            else
            {
                MessageBox.Show("Направление не выбрано");
            }
 
 
            connection.Close();
        }
    }
}

И ошибка, которую прислал преподаватель:
Кликните здесь для просмотра всего текста
Перенос приложения на другой компьютер

Специально прописал относительный путь к БД в приложении. По идее должно было работать. Есть ли какие-либо идеи по этому поводу, кроме как переделать на SQLite?
Ошибка в строке "connection.Open();", т.е. к БД всё же не присоединяется.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2018, 23:46
Ответы с готовыми решениями:

Перенос приложения с БД на другой компьютер
Здравствуйте. У меня есть прога на винформах которая берет данные с БД(добавляет,удаляе и тд.). Эту...

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

Перенос приложения с БД SQLite на другой компьютер
Столкнулся с следующей ситуацией: приложение с базой данных SQLite, написанное на C#, не...

База MSSQL и перенос приложения на другой компьютер
Доброго времени суток бойцы....такой вопросик хотелось бы задать... Написал я приложение...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
5
51 / 45 / 31
Регистрация: 14.04.2015
Сообщений: 273
17.12.2018, 07:40 2
Вам же в ошибке указали в чем проблема что не установлен сервер SQL Server. ПК препода....не может сделать подключение к SQL Server. Дай ему дистрибутив SQL и пусть пробует по новой....хотя странно что препод не мог прочитать ошибку и сказать об этом.
0
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 39
17.12.2018, 07:44  [ТС] 3
Спасибо, уже на SqLite переделал. Хотя по идее раз уж ведёт этот предмет, то и СУБД мог бы установить. Ну да ладно.
0
HF
543 / 358 / 100
Регистрация: 09.09.2011
Сообщений: 1,167
Записей в блоге: 2
17.12.2018, 08:08 4
Цитата Сообщение от Eugene_BY Посмотреть сообщение
Хотя по идее раз уж ведёт этот предмет, то и СУБД мог бы установить.
Даже наверняка оно у него есть. Но вот тут могут быть сложности:
Цитата Сообщение от Eugene_BY Посмотреть сообщение
(LocalDB)\MSSQLLocalDB
У него может быть другое название инстанца.

Чтобы наверняка заработало - нужно делать через файл аттач. Тогда БД наверняка подключится (главное чтобы был LocalDb сервис). И прописать точный путь (это уже преподавателю напомнить).
0
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 39
17.12.2018, 08:22  [ТС] 5
Думаю преподавателю тоже не интересно каждую работу так править. В общем спасибо отозвавшимся, а указанную информацию приму к сведению на будущее.
0
Эксперт .NET
8861 / 6172 / 1029
Регистрация: 21.01.2016
Сообщений: 23,326
17.12.2018, 08:47 6
На самом деле, преподавателю стоило сразу озвучить требование по решению задачи с применением SQLite и проблем бы не было.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2018, 08:47

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

Перенос приложения с БД на другой компьютер - как прописать путь к базе
Здравствуйте! подскажите пожалуйста как правильно реализовать перенос приложения с БД на другой...

Перенос БД на другой компьютер
Привет есть вот эта строка static private SqlConnection typescon = new SqlConnection(@&quot;Data...

Перенос БД на другой компьютер
2 вопроса: 1. Одного лишь перемещения mdf-файла в тот же каталог будет достаточно для переноса...

Перенос приложение на другой компьютер
Доделал диплом, так получилось что он является моим первым проектом на C#. Все пока в исходниках,...


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

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

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