我在下面的屏幕截图中遇到了类似的错误。我的问题是;当我试图写入文本框中的那些信息表时,这给了我错误。我错了吗? 顺便说一下,我正在使用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();
}
答案 0 :(得分:1)
这有点难以辨别,但看起来你需要在insert语句中转义你的值。
"insert into dbo.PersonalInformationTable (PersonalName,PersonalSurname,PersonalEGN) values ('"+txtPrnName.Text+"','"+txtPrnSurName.Text+"','"+txtPrnEgn.Text+"')", conn);
答案 1 :(得分:1)
正确格式化您的SQL(使用tesxtual值或使用参数的单引号)
如果数据库文件存在,则为Chekc。
不要与SQL Server Management Studio Express同时附加数据库文件,因为您无法将相同的数据库文件附加到两个不同的SQL Server(Express)实例两次。
始终确保关闭数据库连接。使用using语句可以实现这一点,无论如何保留代码块(异常或正常程序流),都将调用Dispose()方法。这将始终关闭连接,并避免连接泄漏。
答案 2 :(得分:0)
您需要在查询中的文本值周围放置单引号。更好;使用参数...
您获得的异常可能是由其他原因引起的,但查询本身并不正确,如上所述......