1
string
sql
=
"
insert into tbUsers(User_loginname,User_password,) values(
"
;
2 sql += " ' " + LogName + " ' " ;
3 sql += " ,' " + Password + " ' " ;
4 sql += " ) " ;
5 DataSet ds = oDB.GetDs(sql + " ;select SCOPE_IDENTITY() as id");
6 string id = ds.Tables[0].Rows[0][ " id " ].ToString();
其中第5行的GetDs函数如下:
2 sql += " ' " + LogName + " ' " ;
3 sql += " ,' " + Password + " ' " ;
4 sql += " ) " ;
5 DataSet ds = oDB.GetDs(sql + " ;select SCOPE_IDENTITY() as id");
6 string id = ds.Tables[0].Rows[0][ " id " ].ToString();
1
public
DataSet GetDs(
string
str_Sql)
2 {
3 Open();
4 SqlDataAdapter Ada = new SqlDataAdapter(str_Sql,cn);
5 DataSet ds = new DataSet();
6 Ada.Fill(ds);
7 cn.Close();
8 return ds;
9 }
此外,SCOPE_IDENTITY功能类似的还有IDENT_CURRENT 和 @@IDENTITY,因为它们都返回插入到 IDENTITY 列中的值。
2 {
3 Open();
4 SqlDataAdapter Ada = new SqlDataAdapter(str_Sql,cn);
5 DataSet ds = new DataSet();
6 Ada.Fill(ds);
7 cn.Close();
8 return ds;
9 }
IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。有关更多信息,请参见 IDENT_CURRENT。
SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。