在Visual Studio 2013中创建了一个数据库,主键属性增量选项为true但仍然存在问题
类型' System.Data.SqlClient.SqlException'未处理的异常 发生在System.Data.dll
中附加信息:无法为身份插入显式值 表格中的列'患者'当IDENTITY_INSERT设置为OFF时。
代码:
con.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Patient (PId, FirstName, LastName, ContactNumber, Address, Gender, PatientRecord) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + comboBox1.Text + "','" + textBox6.Text + "') ",con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Saved successfully");
答案 0 :(得分:2)
是的,这必须是因为您在Identity
声明中包含INSERT
列。从查询语句中删除标识列,如
INSERT INTO Patient (FirstName,LastName,ContactNumber,Address,Gender,PatientRecord) VALUES
同样,不要使用来自您的控件(如文本框)的连锁数据运行查询,因为它容易受SQL Injection
攻击。而是考虑使用SqlParameter
使用参数化查询。有关更多信息,请参阅MSDN。