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 不受限于特定的作用域。