从Visual Studio连接到SQL Server数据库的问题

时间:2019-02-07 02:48:22

标签: c# sql-server winforms

我已经用C#创建了一个简单的Windows窗体应用程序,现在发现很难将其连接到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 :(得分:1)

如果您是在SQL Server的实际实例(可以是计算机上的本地实例)上创建数据库的,则好像连接字符串的数据源不太正确。

  

数据源= DESKTOP-XXXXXXX / Shenal Burkey

这有两个问题,首先,斜杠(/)实际上应该是反斜杠()。其次,在斜线后有“ Shenal Burkey”,并带有空格。 SQL Server实例名称不能包含空格字符。话虽如此,如果您将SQL Server安装为命名实例,则需要在该位置指定命名实例,如果您接受默认实例名称,则该名称应为“ MSSQLSERVER”。如果使用默认实例名称,则可以这样指定连接字符串:

Data Source=DESKTOP-XXXXXXX\MSSQLSERVER

或者您可以完全省略实例名称,而只需使用:

Data Source=DESKTOP-XXXXXXX

还有一点提示,您会注意到我用X代替了DESKTOP主机名的细节,我个人建议编辑您的问题并进行相同的操作。看起来似乎没有用,但有人可能只是捡起并找到了一种狡猾的方法来造成一些损害。安全胜过遗憾。