SQL Server EXPRESS: Ошибка: 26 - Ошибка определения сервера / экземпляра, указанного после установки - PullRequest
0 голосов
/ 11 сентября 2018

(C # / .Net Framework4.0 / VS2017). сделал форму окна c # с базой данных sqlcon expressconnection, но не уверен, как создать настройки для другого клиента ...

Я сделал приложение Windows Form с базой данных с sqlconnection в нем. Я использую расширенный установщик, чтобы создать установку, чтобы я мог легко разместить файлы .mdf и .idf с необходимыми предварительными условиями.

добавлена ​​строка подключения как:

 public static class DAL
    {
        public static DataTable ExecSP(string spName, List<SqlParameter> sqlParams = null)
        {
            string strConnect = "Server=PC\\SQLEXPRESS;Database=MyLoginApp;Trusted_Connection=True;";     
            SqlConnection conn = new SqlConnection();
            DataTable dt = new DataTable();

        try
        {
            //Connect to the database
            conn = new SqlConnection(strConnect);
            conn.Open();

            //Build an sql command / query
            SqlCommand cmd = new SqlCommand(spName, conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(sqlParams.ToArray());

            //Execute command
            SqlCommand command = conn.CreateCommand();
            SqlDataReader dr = cmd.ExecuteReader();

            //fill datatable with the results
            dt.Load(dr);


        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            //No matter what happends this will run
            conn.Close();
        }
        return dt;
    }
}

При попытке выполнить следующий код:

private void btnLogin_Click(object sender, EventArgs e)
    {
        List<SqlParameter> sqlParams = new List<SqlParameter>();
        sqlParams.Add(new SqlParameter("Username", TxtUsername.Text));
        sqlParams.Add(new SqlParameter("Password", txtPassword.Text));

        DataTable dtLoginResults = DAL.ExecSP("ValidateLogin", sqlParams);

        string eUser;
        string ePass;
        eUser = TxtUsername.Text;
        ePass = txtPassword.Text;


        if (dtLoginResults.Rows.Count == 1)
        {
            //We know login is valid
            string user = dtLoginResults.Rows[0]["Username"].ToString();
            MessageBox.Show(user + " Berhasil Masuk!");
            this.Hide();
            ListMeja lm = new ListMeja();
            lm.ShowDialog();
        }     
         else
        {
            //invalid login
            MessageBox.Show("Password Salah");
        }    
    } 

возвращает всплывающее окно с ошибкой в ​​другом клиенте после запуска программы .exe

Произошло необработанное исключение в вашем приложении. если вы нажмете «Продолжить», приложение проигнорирует эту ошибку и попытается продолжить. При установлении соединения с сервером SQL произошла ошибка, связанная с сетью или экземпляром. Сервер был недоступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске сервера / указан экземпляр).

Что я здесь не так делаю?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

хорошо .. это решение

SqlConnection con = new SqlConnection(@"Data Source = .\SQLEXPRESS;" +
         @"AttachDbFilename=|DataDirectory|\MyLoginApp.mdf;Integrated Security = True;User Instance=True");
            private void Form1_Load(object sender, EventArgs e)
0 голосов
/ 11 сентября 2018

Пожалуйста, попробуйте подключить SQL Server к SSMS из вашей системы.После успешного входа в систему, пожалуйста, отредактируйте string strConnect = "Server=PC\\SQLEXPRESS;Database=MyLoginApp;Trusted_Connection=True;"; строку подключения в соответствии с SSMS Connected.

...