C# razor设置由.query()方法创建的变量的值

C# razor设置由.query()方法创建的变量的值,c#,sql,sql-server,database,razor,C#,Sql,Sql Server,Database,Razor,我使用以下代码使用razor获得了比表中最大ID多一个的ID @foreach (var top in db.Query("SELECT MAX(ID)+1 as ID FROM mytable")) { if (@top.ID == null) {@top.ID = 1; } } 如果表为空,@top.ID返回null。如果它为空,我试图将其值设置为1。但是,它在赋值部分显示了一个错误。如何将@top.ID的值分

我使用以下代码使用razor获得了比表中最大ID多一个的ID

@foreach (var top in db.Query("SELECT MAX(ID)+1 as ID FROM mytable"))
            {
                if (@top.ID == null) {@top.ID = 1; }
            }
如果表为空,@top.ID返回null。如果它为空,我试图将其值设置为1。但是,它在赋值部分显示了一个错误。如何将@top.ID的值分配给其他对象?或者,如果表为空,是否有方法使用sql查询将ID设置为1?

您可以使用

 select isnull(max(ID),1) from YourTable
但是,如果您试图为新记录生成新ID,最好使用
标识
字段。

您可以使用

 select isnull(max(ID),1) from YourTable

但是,如果您试图为新记录生成新ID,建议您最好使用
标识
字段。

我用alter table尝试了标识字段,它显示了错误。我没有完成前面的注释我用alter table尝试了标识字段,它显示了错误alter table tblDDWeatherTimedValues alter COLUMN ID int identity(1,1)主键,它显示了我的身份错误,但我将需要上述代码太一些其他建议。非常感谢你的代码能正常工作。你知道为什么我的sql查询不能正常工作吗?ALTER TABLE mytable ALTER列ID int IDENTITY(1,1)主KEY@NevilleNazerane请参见我用alter table尝试了标识字段它显示了错误我没有完成前面的注释我用alter table尝试了标识字段它显示了错误alter table tblDDWeatherTimedValues alter COLUMN ID int identity(1,1)主键,它显示了我的身份错误,但我将需要上述代码太一些其他建议。非常感谢你的代码能正常工作。你知道为什么我的sql查询不能正常工作吗?ALTER TABLE mytable ALTER列ID int IDENTITY(1,1)主KEY@NevilleNazerane看见