SqlException 当 IDENTITY_INSERT 设置为 OFF 时不能为表 bookInfo 中的标识列插入显式值。c#代码
这个异常是由于在向数据库中插入数据时,尝试为标识列(即自增长列)插入了一个显式值。在默认情况下,标识列是自动增长的,因此不需要为其提供值。如果您需要为标识列提供值,则必须在插入数据之前将 IDENTITY_INSERT 设置为 ON。
以下是一个示例代码,演示如何在 C# 中将 IDENTITY_INSERT 设置为 ON:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("INSERT INTO bookInfo (id, title, author) VALUES (@id, @title, @author)");
// 将 IDENTITY_INSERT 设置为 ON
command.CommandText = "SET IDENTITY_INSERT bookInfo ON";
command.ExecuteNonQuery();
// 插入数据
command.Parameters.AddWithValue("@id", 1);
command.Parameters.AddWithValue("@title", "The Great Gatsby");
command.Parameters.AddWithValue("@author", "F. Scott Fitzgerald");
command.ExecuteNonQuery();
// 将 IDENTITY_INSERT 设置为 OFF
command.CommandText = "SET IDENTITY_INSERT bookInfo OFF";
command.ExecuteNonQuery();
}
在这个示例中,我们首先将 IDENTITY_INSERT 设置为 ON,然后插入了一个具有显式 ID 值的记录,最后将 IDENTITY_INSERT 设置为 OFF。请注意,ID 值必须是唯一的,否则会引发主键冲突异常。
原文地址: https://www.cveoy.top/t/topic/bdt3 著作权归作者所有。请勿转载和采集!