我想知道如何在c#net中生成第一个自动编号

我想知道如何在c#net中生成第一个自动编号,c#,C#,我键入以下代码以在C#.net中获取自动编号: 但当数据库不包含任何记录时,会显示错误无法将对象从DBNull强制转换为其他类型。 请提供解决方案。由于以下几个原因,您选择的方法不可靠。首先,正如您所发现的,如果表中没有行,则无法确定列的当前标识值。此外,如果要删除具有最高Eid的行,则会得到不正确的结果。您可以使用以下查询获取标识列的当前值: SELECT IDENT_CURRENT('Employee_Payment') AS Current_Identity 为什么不在数据库中创建一个标

我键入以下代码以在C#.net中获取自动编号:

但当数据库不包含任何记录时,会显示错误
无法将对象从DBNull强制转换为其他类型。


请提供解决方案。

由于以下几个原因,您选择的方法不可靠。首先,正如您所发现的,如果表中没有行,则无法确定列的当前标识值。此外,如果要删除具有最高
Eid
的行,则会得到不正确的结果。您可以使用以下查询获取标识列的当前值:

SELECT IDENT_CURRENT('Employee_Payment') AS Current_Identity

为什么不在数据库中创建一个标识列并将其设置为自动编号


如果必须这样做,那么如果表中不包含行,则创建一行并将Eid分配给1,然后插入

它到底在哪里失败?为什么不检查dbnullbeofer以执行任何失败的操作?不管怎么说,这对苏来说是离题的。我投票赞成迁移到StackOverflow,但这还不够高质量(您还没有包括任何研究)。我希望数据库提供标识字段,而不是您自己的.net代码。研究身份和自动编号。这在概念上是错误的,在实现上是错误的。如果希望多个用户使用此代码,请使用自动编号。
SELECT IDENT_CURRENT('Employee_Payment') AS Current_Identity