当前位置: 首页 > 编程语言 > C#

PRIMARYKEYConstraintViolation分享

时间:2023-04-11 02:35:27 C#

PRIMARYKEYConstraintViolation错误看起来像这样。违反PRIMARYKEY约束“PK_clients”。无法在对象“db_owner.clients”中插入重复键。代码如下所示:publicvoidSubscribe(stringclientID,Uriuri){clientsDBDataContextclientDB=newclientsDBDataContext();varclient=newServiceFairy.clientURI();client.clientID=clientID;client.uri=uri.ToString();clientDB.clientURIs.InsertOnSubmit(客户端);clientDB.SubmitChanges();任何想法我如何解决这个问题以便我可以更新我的行,我想要做的就是当一行存在时只更新相关的URI,如果它不存在提交一个新的clientID+URI,谢谢约翰您要做的是首先检查现有记录,如果不存在则添加新记录。您的代码将始终尝试添加新记录。我假设您正在使用Linq2Sql(基于InsertOnSubmit)?publicvoidSubscribe(stringclientID,Uriuri){using(clientsDBDataContextclientDB=newclientsDBDataContext()){varexistingClient=(fromcinclientDB.clientURIswherec.clientID==clientIDselectc).SingleOrDefault();if(existingClient==null){//这是一条需要添加的新记录varclient=newServiceFairy.clientURI();client.clientID=clientID;client.uri=uri.ToString();clientDB.clientURIs.InsertOnSubmit(客户端);}else{//这是一条需要更新的现有记录existingClient.uri=uri.ToString();}clientDB.SubmitChanges();您需要获取现有对象并更新其uri属性,然后调用clientDB。提交更改()。您现在拥有的代码非常明确地要求它插入一条新记录。大概这样就可以了:以上就是C#学习教程:ViolatingthePRIMARYKEYconstraint分享全部内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——使用(clientsDBDataContextclientDB=newclientsDBDataContext()){varclient=clientDB.clientURIs.Where(c=>c.clientID==clientID).Single();client.uri=uri.ToString();clientDB.SubmitChanges();}本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: