【问题标题】:An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll While writing from textbox to sql server 2012从文本框写入 sql server 2012 时,System.Data.dll 中发生了“System.InvalidOperationException”类型的未处理异常
【发布时间】:2014-01-23 10:34:16
【问题描述】:

尝试我的第一个 WPF 文本框到 SQL 快速连接。我收到An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll 使用 sql 2012 express 尝试写入名为

的表

EV用户

关于数据库

员工

错误出现在

connection.Open();

这是我的代码。

void saveData()
        {
            try
            {
                string firstName = FNameTextbox.Text;

                string connectionString = @"Data Source=.\\SQLEXPRESS;  Database=Employee;Integrated Security=True;User Instance=True";
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    using (SqlCommand command = connection.CreateCommand())
                    {
                        command.CommandText = " INSERT INTO EVUSERS (FName) VALUES (@FName)";

                        command.Parameters.AddWithValue("@FName", firstName);

                        connection.Open();
                        command.ExecuteNonQuery();
                        connection.Close();
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }         
       }

这是我试图从 taxtbox 中插入数据的表格的图像。 Employee.dbo.EVUSERS

编辑 截图

我不知道为什么 open() 会出错;会是连接字符串吗?或者我正在使用的命令?该表肯定存在。

【问题讨论】:

  • 需要更多关于异常的细节
  • 试试我最近编辑的代码
  • 我尝试了您的编辑,但不幸的是我仍然遇到同样的错误。
  • 您可以删除“user Instance=True”位并重试吗?
  • 感谢大家的帮助。我的问题是,在 Management Studio 中,我必须在 Windows 身份验证下授予自己权限。授予一切。这就是为什么它总是有 conn.open() 问题。我以为我是 Windows 管理员,特权是自动的,但事实并非如此。谢谢。

标签: c# sql sql-server wpf


【解决方案1】:

MSDN

  1. 无法在未指定数据源或服务器的情况下打开连接。或
  2. 连接已打开。

所以检查你的连接字符串

 using (SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=Employee;Integrated Security=SSPI;"))
{
    connection.Open();
    SqlCommand command= connection.CreateCommand();
    command.CommandText = " INSERT INTO EVUSERS (FName) VALUES (@FName)";
    command.Parameters.AddWithValue("@FName", firstName);
    command.ExecuteNonQuery();
}

【讨论】:

    【解决方案2】:

    您的连接字符串中的数据源中有两个反斜杠,但该字符串以 @ 开头,因此不需要转义反斜杠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      相关资源
      最近更新 更多