gpt4 book ai didi

c# - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'ClientDetails' 中为标识列插入显式值

转载 作者:可可西里 更新时间:2023-11-01 08:46:27 27 4
gpt4 key购买 nike

每当我尝试通过表单向此数据库提交数据时,都会抛出此异常:-

  • 异常

    当 IDENTITY_INSERT 设置为 OFF 时,无法在表“ClientDetails”中为标识列插入显式值。

但是,表单没有字段,因此数据可以输入标识列 (PK),所以我不知道为什么会发生这种情况。

目前我正在使用标准的 asp.net mvc 提交按钮,但我最终会将它链接到一个 jquery 对话框按钮

ClientNo Column 即异常所指的列具有以下属性

  • 姓名 - 客户编号
  • 类型 - 整数
  • NULLS - 否
  • 身份规范 - 是
  • 是身份 - 是
  • 增量 - 1
  • 种子 - 1

ClientNo有数据900等

当客户端表单没有在表单中输入数据时也会抛出此异常

它在 DataCContext.SubmitChanges() 方法上抛出

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create1(ClientDetail client)
{
if(ModelState.IsValid)
{
client = new ClientDetail();



UpdateModel(client);
//Debug Code
System.Diagnostics.Debug.WriteLine("AddNewClient Create1");
repo.AddNewClient(client);
//Debug Code
System.Diagnostics.Debug.WriteLine("Save Create1");


// System.Data.SqlClient.SqlException thrown at this line
repo.Save();

//Debug Code - never reached
System.Diagnostics.Debug.WriteLine("Saved Changes");


// return RedirectToAction("Details", new { id = client.ClientNo });




}
return View(client);
}

public void AddNewClient(ClientDetail client)
{
System.Diagnostics.Debug.WriteLine("Start Insert On Submit");

db.ClientDetails.InsertOnSubmit(client);
System.Diagnostics.Debug.WriteLine("Finish Insert On Submit");
}

public void Save()
{
System.Diagnostics.Debug.WriteLine("In Save Method");
db.GetChangeSet();
System.Diagnostics.Debug.WriteLine("Got ChangeSet");
db.SubmitChanges();
System.Diagnostics.Debug.WriteLine("Exit Save Method");
}
Is this the query everyone is talking about

[Column(Storage="_ClientNo", DbType="Int NOT NULL", IsPrimaryKey=true, UpdateCheck=UpdateCheck.Never)]
public int ClientNo
{
get
{
return this._ClientNo;
}
set
{
if ((this._ClientNo != value))
{
this.OnClientNoChanging(value);
this.SendPropertyChanging();
this._ClientNo = value;
this.SendPropertyChanged("ClientNo");
this.OnClientNoChanged();
}
}
}

有谁知道发生这种情况的解决方案或原因吗?

谢谢

最佳答案

将 IsDbGenerated=true 添加到 ClientNo 属性

[Column(Storage="_ClientNo", DbType="Int NOT NULL", **IsDbGenerated=true,** IsPrimaryKey=true, UpdateCheck=UpdateCheck.Never)] 
public int ClientNo

关于c# - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'ClientDetails' 中为标识列插入显式值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com