我已经用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
答案 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主机名的细节,我个人建议编辑您的问题并进行相同的操作。看起来似乎没有用,但有人可能只是捡起并找到了一种狡猾的方法来造成一些损害。安全胜过遗憾。