как сделать установщик windows form приложения на C# к которому подключена SSMS база данных?

Рейтинг: 0Ответов: 1Опубликовано: 22.03.2023

Создана база данных в SSMS на локальном компьютере, также создано WindowsForm приложение на C#, которое выводит данные из таблиц БД. Сделал установочный файл приложения, на моем ПК устанавливается и работает как и задумано, а на ПК друга после установки запускаю приложение и не могу авторизоваться (в бд создана таблица с зарегистрированными пользователями). Понятно что приложение просто не может подключиться к базе данных, но как это решить?

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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Data.SqlClient;

namespace test_DataBase
{
    internal class DataBase
    {

        SqlConnection sqlConnection = new SqlConnection(@"Data Source=DESKTOP-GE5UCRH\SQLEXPRESS; Initial Catalog=test; Integrated Security=True");

        public void openConnection()
        {
            if (sqlConnection.State == System.Data.ConnectionState.Closed)
            {
                sqlConnection.Open();
            }
        }

        public void closeConnection()
        {
            if (sqlConnection.State == System.Data.ConnectionState.Open)
            {
                sqlConnection.Close();
            }
        }

        public SqlConnection getConnection()
        {
            return sqlConnection;
        }
    }
}

Ответы

▲ 0

"в бд создана таблица с зарегистрированными пользователями"

У вас авторизация в БД на базе учетки Windows. Как вы прописали пользователей? У вас домен или рабочая группа?

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

Далее вы столкнётесь с тем, что скорее всего не настроили прослушивание tcp/ip у sql server. И не открыли порт в фаерволе.