Проблема с подключением к базе данных SQL Server из Visual Studio - PullRequest
0 голосов
/ 07 февраля 2019

Я создал простое приложение Windows Forms в C # и теперь мне сложно подключить его к базе данных SQL Server.Я создал базу данных в самой Visual Studio.Однако, когда я пытаюсь вставить данные, я получаю исключение SQL.Я думаю, что есть проблема в источнике данных соединения, то есть переменная con.Пожалуйста, помогите мне найти решение.

SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=Database1;Integrated Security=SSPI");

SqlCommand cmd;
SqlDataAdapter adapt;

if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "")
{
    cmd = new SqlCommand("insert into [dbo].[user] (Id, username, password) values (@id, @name, @state)", con);

    con.Open();

    cmd.Parameters.AddWithValue("@id", textBox1.Text);
    cmd.Parameters.AddWithValue("@name", textBox2.Text);
    cmd.Parameters.AddWithValue("@state", textBox3.Text);

    cmd.ExecuteNonQuery();
    con.Close();

    MessageBox.Show("Record Inserted Successfully");
}
else 
{
    MessageBox.Show("Please Provide Details!");
}

Имя файла базы данных:

\WindowsFormsApplication1\WindowsFormsApplication1\Database1.mdf

1 Ответ

0 голосов
/ 07 февраля 2019

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

Источник данных = DESKTOP-XXXXXXX / Shenal Burkey

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

Data Source=DESKTOP-XXXXXXX\MSSQLSERVER

или полностью опустить имя экземпляра и просто использовать:

Data Source=DESKTOP-XXXXXXX

Также, просто совет, вы заметите, что я заменил специфику имени хоста вашего DESKTOP на X, лично я бы порекомендовал отредактировать ваш вопрос и сделать то же самое.Может показаться, что это не было бы полезно, но кто-то может просто взять это и найти хитрый способ нанести какой-то ущерб.Лучше безопасно, чем потом сожалеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...