标识列的显式值

本文关键字:标识 | 更新日期: 2023-09-27 18:31:00

Visual Studio 2013中创建了一个数据库,主键属性增量选项为真,但仍然存在问题

类型为"System.Data.SqlClient.SqlException"的未处理异常 发生在系统数据中.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"); 

标识列的显式值

是的,这必须是您在语句中包含INSERT Identity列的原因。 从查询语句中删除标识列,例如

INSERT INTO Patient (FirstName,LastName,ContactNumber,Address,Gender,PatientRecord) VALUES

同样,不要使用来自控件(如文本框)的串联数据运行查询,因为这容易受到SQL Injection的影响。而是考虑使用 SqlParameter 的参数化查询。有关详细信息,请参阅 MSDN。