【问题标题】:SqlException was unhandledSqlException 未处理
【发布时间】:2011-06-23 21:57:29
【问题描述】:

我在下面的屏幕截图中遇到了类似的错误。我的问题是;当我尝试在文本框中写入这些信息时,这给了我错误。我错在哪里? 顺便说一句,我使用的是 SQL Server Express 2008。

private void btnprnsave_Click(object sender, EventArgs e)
    {          
        SqlConnection conn = DBConfigs.DataCon();
        SqlCommand record = new SqlCommand ("insert into dbo.PersonalInformationTable (PersonalName,PersonalSurname,PersonalEGN) values ("+txtPrnName.Text+","+txtPrnSurName.Text+","+txtPrnEgn.Text+")", conn);
        record.ExecuteNonQuery();
        conn.Close();
   }

【问题讨论】:

标签: c# sql-server-2008


【解决方案1】:
  1. 正确格式化您的 SQL(用单引号括住测试值或使用参数)

  2. 检查数据库文件是否存在。

  3. 不要使用 SQL Server Management Studio Express 同时附加数据库文件,因为您不能将同一个数据库文件附加到两个不同的 SQL Server (Express) 实例。

    李>
  4. 始终确保关闭数据库连接。这应该使用 using 语句来实现,因为无论该代码块如何留下(异常或正常程序流),都会调用 Dispose() 方法。这将始终关闭连接,并且您避免了连接泄漏。

【讨论】:

    【解决方案2】:

    这有点难说,但看起来你需要在插入语句中转义你的值。

    "insert into dbo.PersonalInformationTable (PersonalName,PersonalSurname,PersonalEGN) values ('"+txtPrnName.Text+"','"+txtPrnSurName.Text+"','"+txtPrnEgn.Text+"')", conn);
    

    【讨论】:

      【解决方案3】:

      您需要在查询中的文本值周围加上单引号。更好;使用参数...
      您得到的异常可能是由其他原因引起的,但查询本身不正确,如上所述...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-17
        • 2021-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多