您的位置:首页 > 其它

获取刚刚insert的数据的自增长id

2009-04-01 19:40 169 查看
获取刚刚insert的数据的自增长id,有很多方法,常用的是insert语句完之后,后面再跟一个select Scope_Identity(),比如像下面这样的sql:

insert into ChangeNodeWorkflow(ProjID,Content) values(@ProjID,@Content);

select Scope_Identity();
然后大家通过企业库db.ExecuteScale()方法就可以拿到刚刚生成的自增长ID,下面介绍另外一种方法,异曲同工:

insert into ChangeNodeWorkflow(ProjID,Content) values(@ProjID,@Content);

select @ChangeID = Scope_Identity();
大家观察一下,就可以看出,后面这句是用了一个参数的方式来返回我们所需要的值的,那么我们在代码中如何获取该参数的值呢?如下所示:

public static int InsertChangeNodeWorkflow(string content, string projID)

{

Database db = DatabaseFactory.CreateDatabase();

DbCommand dbCommand = db.GetSqlStringCommand(sql_InsertChangeNodeWorkflow);

db.AddInParameter(dbCommand, "@Content", DbType.String, content);

db.AddInParameter(dbCommand, "@ProjID", DbType.String, projID);

db.AddOutParameter(dbCommand, "@ChangeID", DbType.Int32, 4);

db.ExecuteNonQuery(dbCommand);

int changeId = (int)db.GetParameterValue(dbCommand, "@ChangeID");

return changeId;

}
细心的读者会发现,@ChangeID这个输出参数是用db.AddOutParameter()的方法设置的

参数中的值,如何获取呢?db.GetParameterVlaue()函数就是干这个活的,呵呵


lastbeachhead
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: