C# 删除其中一条记录后,对其余记录重新编号
我在SQL server中使用实体框架ASP.NET MVC创建了一个数据库。我有一个名为“S No”的列,表示序列号。现在,当我从数据库中删除一条记录时,“S号”显然会跳过记录序列号的部分。我想使用我的控制器重新编号“S编号”列。是否有任何算法,以便我可以轻松地重新编号 下面是AddFeature()方法的代码,我在其中对“S No.”列进行编号 两种解决方案:C# 删除其中一条记录后,对其余记录重新编号,c#,asp.net,asp.net-mvc,algorithm,sorting,C#,Asp.net,Asp.net Mvc,Algorithm,Sorting,我在SQL server中使用实体框架ASP.NET MVC创建了一个数据库。我有一个名为“S No”的列,表示序列号。现在,当我从数据库中删除一条记录时,“S号”显然会跳过记录序列号的部分。我想使用我的控制器重新编号“S编号”列。是否有任何算法,以便我可以轻松地重新编号 下面是AddFeature()方法的代码,我在其中对“S No.”列进行编号 两种解决方案: 不要将S_no作为数据库中的一列保存,而是在读取操作返回记录时动态生成其值 如果仍希望在数据库中保留S_no,则需要在任何删除发生时
为什么要使用
Count()
?您不能只使用Max()+1
而不用担心重新编号吗?如果您有where条件和count+1,则无法重置序列号。SoftwareFeatureList参数是否包含需要重置SNO的列表?为什么需要序列号列?对它有特殊要求吗?如果序列号由于某些内容被删除而可能发生更改,为什么您首先会有一个序列号?Pablo,实际上count()用于获取特定帐户/id/表单的记录数。Max()+1也应适用。Najuillah,是的,它用于显示特定帐户/对象中包含的项目序列。为什么要使用Count()
?您不能只使用Max()+1
而不用担心重新编号吗?如果您有where条件和count+1,则无法重置序列号。SoftwareFeatureList参数是否包含需要重置SNO的列表?为什么需要序列号列?对它有特殊要求吗?如果序列号由于某些内容被删除而可能发生更改,为什么您首先会有一个序列号?Pablo,实际上count()用于获取特定帐户/id/表单的记录数。Max()+1也应适用。Najiullah,是的,它用于显示特定帐户/对象中包含的一系列项目。保持动态价值是个好主意。我应该尝试实现它。保持价值的动态是一个好主意。我应该试着实现它。
public ActionResult AddFeature(Models.SoftwareFeatureList s)
{
ViewBag.Username = uname;
ViewBag.UserType = utype;
try
{
c = new DatabaseZTBLEntities();
s.FormId = formid;
int identity = c.SoftwareFeatureLists.Where(u=>u.FormId.Equals(formid)).Count() +1;
s.S_No_ = identity;
c.SoftwareFeatureLists.Add(s);
c.SaveChanges();
}
catch(Exception e)
{
ViewBag.Error = e.Message;
return View("error");
}
finally
{
c.Database.Connection.Close();
}
return Redirect("FeaturesListPage");
}