获取刚刚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
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
相关文章推荐
- Sqlite 清空表中所有数据 并重置自增长数据 以及获取last_insert_id的方法
- ios sqlite 获取自增长id last_insert_rowid
- SQLite 获取最新插入数据的自增长主键ID
- Oracle插入数据并获取自增长序列ID方法
- 如何获取自增长列(标识列)的ID,并写入另一张表(多对多关系插入数据示例)
- ASP 获取 ACCESS 中新插入数据的 ID 或多个ID /Getting last insert ID/ By Stabx
- C# insert into 一条记录后获取该记录的自动增长列ID
- postgresql 获取刚刚插入的数据主键id
- mybatis的insert元素属性详解 及 在insert插入数据获取主键id的值
- oracle数据库insert后获取insert数据的自增id值
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- 使用强类型DataSet增加数据并获取自动增长的ID
- 用java如何获取对MS Server2005刚刚插入数据的ID值?
- 在SQLite数据库中获取新插入数据自增长的ID值
- 如何获取自增长列(标识列)的ID,并写入另一张表(多对多关系插入数据示例)
- 【转载】在mysql中获取insert插入数据的id的方法SELECT LAST_INSERT_ID();
- 在SQLite数据库中获取新插入数据自增长的ID值(传智播客笔记)
- sql,mysql插入数据时获取自动增长列的ID
- 在SQLite数据库中获取新插入数据自增长的ID值(传智播客笔记)
- myBatis+mysql获取插入数据的自增长id