Підключення до бази даних SQL Server 2012 за допомогою C # (Visual Studio 2012)

Ввечері все

Я намагаюся підключитися до бази даних SQL Server 2012 з C #. Налаштування підключення під час використання SQL Server Management Studio описані нижче: -

Server Type:    Database Engine
Server Name:    Paul-PC\SQLEXPRESS
Authentication: Windows Authentication
Username:   Greyed out
Password:   Greyed out 

Ім'я бази, яким я намагаюся з'єднатися, - це "testDB".

Ось мій код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace DatabaseConnection
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            SqlConnection myConnection = new SqlConnection("server=localhost;" +
                                       "Trusted_Connection=yes;" +
                                       "database=testDB; " +
                                       "connection timeout=30");
            try
            {
                myConnection.Open();
                MessageBox.Show("Well done!");
            }
            catch(SqlException ex)
            {
               MessageBox.Show("You failed!" + ex.Message);
            }

        }
    }
}

На жаль, моєму коду не вдається з'єднати з наступною помилкою: -

"Ви не вдались! Під час встановлення з'єднання з SQL Server виникла помилка, пов'язана з мережею або інстанцією. Сервер не був знайдений або не був доступний. Переконайтеся, що ім'я екземпляру є правильним, а SQL Server налаштований на дозвіл віддалених з'єднань. "

Будь-які пропозиції? SQL Server працює локально.

9
@ Шахаріар, що ви маєте на увазі під цим? Я перевірив services.msc і SQL Server працює.
додано Автор thefragileomen, джерело
@ Шахаріар, що ви маєте на увазі під цим? Я перевірив services.msc і SQL Server працює.
додано Автор thefragileomen, джерело
@ScottChamberlain Так, я можу отримати доступ до нього через Management Studio, і я фактично увійшов у систему, коли я запускаю код. Я намагався змінити "localhost" на "local", але безрезультатно
додано Автор thefragileomen, джерело
@ScottChamberlain Так, я можу отримати доступ до нього через Management Studio, і я фактично увійшов у систему, коли я запускаю код. Я намагався змінити "localhost" на "local", але безрезультатно
додано Автор thefragileomen, джерело
@Соотт Кемберлайн відмінно. "Сервер = (локальний) \ \ SQLEXPRESS" вирішив проблему. Дякую
додано Автор thefragileomen, джерело
@ Chris Дякую за посилання. Я ввімкнув TCP/IP, але ще не радуйся.
додано Автор thefragileomen, джерело
@Соотт Кемберлайн відмінно. "Сервер = (локальний) \ \ SQLEXPRESS" вирішив проблему. Дякую
додано Автор thefragileomen, джерело
1. Чи робить це те саме помилка, якщо ви використовуєте (локальний) замість localhost для сервера? 2. Чи можете ви відкрити сервер у Sql Server Management Studio?
додано Автор Scott Chamberlain, джерело
1. Чи робить це те саме помилка, якщо ви використовуєте (локальний) замість localhost для сервера? 2. Чи можете ви відкрити сервер у Sql Server Management Studio?
додано Автор Scott Chamberlain, джерело
Що станеться, якщо ви використовуєте server = (local) \\ SQLEXPRESS ? Ви також впевнені, що ви працюєте над Paul-PC ?
додано Автор Scott Chamberlain, джерело
Що станеться, якщо ви використовуєте server = (local) \\ SQLEXPRESS ? Ви також впевнені, що ви працюєте над Paul-PC ?
додано Автор Scott Chamberlain, джерело
Переконайтеся, що служба сервера SQL працює позаду
додано Автор Shaharyar, джерело
Переконайтеся, що служба сервера SQL працює позаду
додано Автор Shaharyar, джерело
додано Автор Chris, джерело
додано Автор Chris, джерело
@thefragileomen Якщо на Ваші питання було дано відповідь, то розглянемо одне з відповідей як прийняте.
додано Автор RyanfaeScotland, джерело
@thefragileomen Якщо на Ваші питання було дано відповідь, то розглянемо одне з відповідей як прийняте.
додано Автор RyanfaeScotland, джерело

11 Відповіді

У вашому рядку з'єднання замінити server = localhost на " server = Paul-PC \\ SQLEXPRESS; "

6
додано

У вашому рядку з'єднання замінити server = localhost на " server = Paul-PC \\ SQLEXPRESS; "

6
додано

Я перевірив усі відповіді тут, але для мене ніхто не працював. Тому я трохи вивчив проблему, і, нарешті, знайшов потрібний рядок з'єднання. Щоб отримати цей рядок, ви робите:
1. у назві вашого проекту:
   a. клацніть правою кнопкою миші назву проекту,
   б натисніть Додати,
   с виберіть базу даних SQL Server (очевидно, ви можете перейменувати це за бажанням).
   Тепер до вашого проекту буде додано нову бажану базу даних.
2. База даних видно у вікні Сервера Провідника.
3. Клацніть лівою кнопкою миші на ім'я бази даних в вікні Сервер Провідника; Тепер перевірте вікно Solution Explorer, і ви знайдете "String з'єднання" поряд з постачальником, штатом, типом, версією.
4. Скопіюйте наданий рядок з'єднання та помістіть його в метод Page_Load:

string source = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\x\x\documents\visual studio 2013\Projects\WebApplication3\WebApplication3\App_Data\Product.mdf;Integrated Security=True";
SqlConnection conn = new SqlConnection(source);
conn.Open();
//your code here;
conn.Close();

Я перейменував мою базу даних в Product. Крім того, в "AttachDbFilename" ви повинні замінити "c: \ x \ x \ documents \" на свій шлях до фізичної адреси файлу .mdf.

Це працювало для мене, але я повинен згадати цей метод працює для VS2012 і VS2013. Не знаю про інші версії.

3
додано
Він працював тільки в спільноті Visual Studio 3013. Під час копіювання рядка з'єднання з властивостей не забудьте вилучити подвійні лапки після AttachDbFilename, що вказує на файл mdf. Якщо ви помістите це в string, ви отримаєте виняток
додано Автор Nidhin David, джерело

Я перевірив усі відповіді тут, але для мене ніхто не працював. Тому я трохи вивчив проблему, і, нарешті, знайшов потрібний рядок з'єднання. Щоб отримати цей рядок, ви робите:
1. у назві вашого проекту:
   a. клацніть правою кнопкою миші назву проекту,
   б натисніть Додати,
   с виберіть базу даних SQL Server (очевидно, ви можете перейменувати це за бажанням).
   Тепер до вашого проекту буде додано нову бажану базу даних.
2. База даних видно у вікні Сервера Провідника.
3. Клацніть лівою кнопкою миші на ім'я бази даних в вікні Сервер Провідника; Тепер перевірте вікно Solution Explorer, і ви знайдете "String з'єднання" поряд з постачальником, штатом, типом, версією.
4. Скопіюйте наданий рядок з'єднання та помістіть його в метод Page_Load:

string source = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\x\x\documents\visual studio 2013\Projects\WebApplication3\WebApplication3\App_Data\Product.mdf;Integrated Security=True";
SqlConnection conn = new SqlConnection(source);
conn.Open();
//your code here;
conn.Close();

Я перейменував мою базу даних в Product. Крім того, в "AttachDbFilename" ви повинні замінити "c: \ x \ x \ documents \" на свій шлях до фізичної адреси файлу .mdf.

Це працювало для мене, але я повинен згадати цей метод працює для VS2012 і VS2013. Не знаю про інші версії.

3
додано
Він працював тільки в спільноті Visual Studio 3013. Під час копіювання рядка з'єднання з властивостей не забудьте вилучити подвійні лапки після AttachDbFilename, що вказує на файл mdf. Якщо ви помістите це в string, ви отримаєте виняток
додано Автор Nidhin David, джерело

використовувати цей стиль

@"server=.\sqlexpress;"
1
додано
Ви також можете помітити, що майже така точна відповідь була опублікована 5 місяців тому
додано Автор Andrew Barber, джерело
це не правильний спосіб відповісти, дайте відповідь на якийсь детальний спосіб. і прочитайте FAQ, щоб правильно використати stackoverflow.
додано Автор Hamad, джерело

використовувати цей стиль

@"server=.\sqlexpress;"
1
додано
Ви також можете помітити, що майже така точна відповідь була опублікована 5 місяців тому
додано Автор Andrew Barber, джерело
це не правильний спосіб відповісти, дайте відповідь на якийсь детальний спосіб. і прочитайте FAQ, щоб правильно використати stackoverflow.
додано Автор Hamad, джерело

Спробуйте:

SqlConnection myConnection = new SqlConnection("Database=testDB;Server=Paul-PC\\SQLEXPRESS;Integrated Security=True;connect timeout = 30");
0
додано

Заміна server = localhost з використанням server =. \ SQLEXPRESS могла б виконати завдання.

0
додано
Дякую Денніс. Я спробував це, але Visual Studio повернув помилку під час спроби скомпілювати - "невизнана ескалація". Тому я спробував провести подвійне зворотне зворотне похило, але код все одно не працює.
додано Автор thefragileomen, джерело
справа евангелійної послідовності - через одиничне "/", якщо ви новачок, цей веб-сайт буде дуже корисним посиланням на різні рядки з'єднання для будь-якої СУБД: connectionstrings.com
додано Автор joe, джерело

Заміна server = localhost з використанням server =. \ SQLEXPRESS могла б виконати завдання.

0
додано
Дякую Денніс. Я спробував це, але Visual Studio повернув помилку під час спроби скомпілювати - "невизнана ескалація". Тому я спробував провести подвійне зворотне зворотне похило, але код все одно не працює.
додано Автор thefragileomen, джерело
справа евангелійної послідовності - через одиничне "/", якщо ви новачок, цей веб-сайт буде дуже корисним посиланням на різні рядки з'єднання для будь-якої СУБД: connectionstrings.com
додано Автор joe, джерело

Примітка до нижче

connetionString [email protected]"server=XXX;Trusted_Connection=yes;database=yourDB;";

Note: XXX = . OR .\SQLEXPRESS OR .\MSSQLSERVER OR (local)\SQLEXPRESS OR (localdb)\v11.0 &...

ви можете замінити " сервер " на " джерело даних "

ви також можете замінити " бази даних " на " Початковий каталог "

Приклад:

 connetionString [email protected]"server=.\SQLEXPRESS;Trusted_Connection=yes;Initial Catalog=books;";
0
додано
Ласкаво просимо до переповнення стека! Будь ласка, вкажіть інформацію про вашу відповідь, а не просто публікацію коду. Ми намагаємося не лише "виправляти", але й допомагати людям навчатися. Ви повинні пояснити, що було помилково в оригінальному коді, що ви зробили інакше, і чому ваша зміна (и) працювала.
додано Автор Andrew Barber, джерело

Примітка до нижче

connetionString [email protected]"server=XXX;Trusted_Connection=yes;database=yourDB;";

Note: XXX = . OR .\SQLEXPRESS OR .\MSSQLSERVER OR (local)\SQLEXPRESS OR (localdb)\v11.0 &...

ви можете замінити " сервер " на " джерело даних "

ви також можете замінити " бази даних " на " Початковий каталог "

Приклад:

 connetionString [email protected]"server=.\SQLEXPRESS;Trusted_Connection=yes;Initial Catalog=books;";
0
додано
Ласкаво просимо до переповнення стека! Будь ласка, вкажіть інформацію про вашу відповідь, а не просто публікацію коду. Ми намагаємося не лише "виправляти", але й допомагати людям навчатися. Ви повинні пояснити, що було помилково в оригінальному коді, що ви зробили інакше, і чому ваша зміна (и) працювала.
додано Автор Andrew Barber, джерело
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug