SqlException未处理

时间:2011-06-23 13:25:55

标签: c# sql-server-2008

我在下面的屏幕截图中遇到了类似的错误。我的问题是;当我试图写入文本框中的那些信息表时,这给了我错误。我错了吗? 顺便说一下,我正在使用SQL Server Express 2008。 enter image description here

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();
   }

3 个答案:

答案 0 :(得分:1)

这有点难以辨别,但看起来你需要在insert语句中转义你的值。

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

答案 1 :(得分:1)

  1. 正确格式化您的SQL(使用tesxtual值或使用参数的单引号)

  2. 如果数据库文件存在,则为Chekc。

  3. 不要与SQL Server Management Studio Express同时附加数据库文件,因为您无法将相同的数据库文件附加到两个不同的SQL Server(Express)实例两次。

  4. 始终确保关闭数据库连接。使用using语句可以实现这一点,无论如何保留代码块(异常或正常程序流),都将调用Dispose()方法。这将始终关闭连接,并避免连接泄漏。

答案 2 :(得分:0)

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