Как поделиться кодом С# с базой данных SQL

Мы с другом делаем приложение с использованием С#, WPF и Visual Studio. Мы создали функцию входа в систему с помощью MS SQL Server, и база данных находится на моем компьютере. Когда я передаю исходный код своему другу, и он открывает его в Visual Studio (на своем ПК), он не может войти в систему, как я. Каждый раз, когда он нажимает кнопку «Войти», программа мгновенно вылетает, даже не выдавая никаких ошибок.

На моем ПК, когда я нажимаю кнопку «Войти», он успешно переходит на следующую страницу, поэтому мы считаем, что это как-то связано с базой данных SQL. Как я могу сделать так, чтобы он работал и на его ПК?

Код для кнопки входа

private void UserSignInBtn_Click(object sender, RoutedEventArgs e)
        {
            SqlConnection sqlCon = new SqlConnection(connectionString);


            try
            {
                if (sqlCon.State == ConnectionState.Closed)
                {
                    sqlCon.Open();
                    string query = "SELECT COUNT (1) FROM tblSignUP WHERE StudentName=@StudentName AND Password=@Password";
                    SqlCommand sqlCmd = new SqlCommand(query, sqlCon);
                    sqlCmd.CommandType = CommandType.Text;
                    sqlCmd.Parameters.AddWithValue("@StudentName", tbID.Text);
                    sqlCmd.Parameters.AddWithValue("@Password", PB.Password);
                    int count = Convert.ToInt32(sqlCmd.ExecuteScalar());
                    if (count == 1)
                    {

                        // Custom Message Box and Dim Effect
                        var jim = new Dim();

                        jim.Show();
                        this.Effect = new BlurEffect();

                        var lsmb = new Custom_MessageBoxes.LoginSuccessfulMsgBox();
                        lsmb.ShowDialog();

                        this.Effect = null;
                        jim.Close();

                        var User_Homepage = new User_Homepage();
                        NavigationService.Navigate(User_Homepage);
                    }
                    else
                    {
                       // Custom Message Box and Dim Effect 2
                        var him = new Dim();

                        him.Show();
                        this.Effect = new BlurEffect();

                        var rmdlgb = new ReturnMessageDialogueBox();
                        rmdlgb.ShowDialog();

                        this.Effect = null;
                        him.Close();

                    }
                }
            }
            catch(Exception ex)
            {

            }
            finally
            {
                sqlCon.Close();
            }
        }```

Покажите какой-нибудь код - ваш код входа. Где ваша база данных SQL? Вы в той же сети? Вы ошиблись в процедуре входа в систему (используя try/catch) и т. д.?

Charleh 25.05.2019 13:06

Если бы вы выполняли обработку исключений, вы, вероятно, заметили бы SqlException.

Crowcoder 25.05.2019 13:06

Сделайте так, чтобы он мог получить доступ к экземпляру SQL Server на вашем ПК, или убедитесь, что у него есть файл localdb, в зависимости от используемой вами технологии. У нас недостаточно информации, чтобы давать какие-либо дополнительные советы; особенно когда у нас нет ошибок или кода

Larnu 25.05.2019 13:07

Да, на странице входа использовалась обработка исключений try/catch. Я обновил исходный пост с кодом входа

user11014303 25.05.2019 13:25

Могу добавить свой код в пост за исключением

sayah imad 25.05.2019 13:26

Если строка подключения указывает на вашу локальную базу данных, ваш друг не сможет получить доступ к вашей базе данных, используя ту же строку подключения. Вы должны прочитать, как настроить Sql Server, чтобы он был виден между машинами, и как подготовить строку подключения для вашего друга.

Steve 25.05.2019 13:35

Ваш блок catch пуст. Это не «обработка» исключения, а его игнорирование.

Crowcoder 25.05.2019 13:36

Так должен ли я как-то изменить строку подключения? или база данных должна быть установлена ​​на ПК моего друга, у него также есть MS SQL Server

user11014303 25.05.2019 13:47

@JojoAmankwa, если вы хотите, чтобы оба экземпляра приложения использовали одну и ту же базу данных и данные, обе строки подключения должны указывать один и тот же источник данных (имя вашего ПК). Убедитесь, что ваш экземпляр SQL имеет номер настроен на разрешение удаленных подключений, а порт открыт в брандмауэре Windows.

Dan Guzman 25.05.2019 14:07

И не используйте добавить со значением. Научитесь правильно параметризовать запросы.

SMor 25.05.2019 16:05
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
10
106
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Введите следующее в Catch и просмотрите ошибку на машине вашего друга, она сообщит вам, в чем именно заключается ошибка, когда вы заглянете в средство просмотра событий на его машине.

        using (EventLog eventLog = new EventLog("Application"))
        {
            eventLog.Source = "SQL Error: From My Application";
            eventLog.WriteEntry(ex.StackTrace, EventLogEntryType.Error, 101, 1);
        }

Другие вопросы по теме