【问题标题】:Issue with connecting to SQL Server database from Visual Studio从 Visual Studio 连接到 SQL Server 数据库的问题
【发布时间】:2019-02-07 02:48:21
【问题描述】:

我用 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

【问题讨论】:

  • 遇到SQL异常时能否提供错误详情?
  • 附加信息:无法打开登录请求的数据库“Database1”。登录失败。

标签: c# sql-server winforms


【解决方案1】:

如果您在 SQL Server 的实际实例(这可以是您机器上的本地实例)上创建数据库,那么您的连接字符串的数据源似乎不太正确。

数据源=DESKTOP-XXXXXXX/Shenal Burkey

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

Data Source=DESKTOP-XXXXXXX\MSSQLSERVER

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

Data Source=DESKTOP-XXXXXXX

另外,只是一个提示,你会注意到我用 X 替换了你的桌面主机名的细节,我个人建议你编辑你的问题并做同样的事情。它可能看起来没什么用,但有人可能会捡起它并找到一种狡猾的方法来造成一些伤害。安全总比后悔好。

【讨论】:

  • 这似乎可行,但现在我收到了数据库名称错误,我已将其更改为 Database1(我的数据库名称)。但我仍然不断收到错误消息。 SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=Database1;Integrated Security=SSPI;");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
相关资源
最近更新 更多