首先,创建一个User表,字段3个:id,Userid和Password,类型分别为int(4),varchar(25)和binary(16).把id设置为自动增加型主键。userid设置为唯一型约束 --------------------------------------------------- --添加用户调用的存储过程 CREATE Procedure Sp_UserAdd ( @Userid varchar(20), @Password binary(16), @User_id int OUTPUT ) AS INSERT INTO User(Userid,Password)VALUES(@Userid,@Password) SELECT @User_id = @@Identity --得到刚插入纪录的id,注意这里是字段id的值,不是userid字段的值 ----------------------------------------------------- 程序根据@User_id的返回值来判断(如果纪录增加成功就会返回当前的id号,SELECT @User_id = @@Identity。不成功就说明,当前要增加的userid在数据库中有重复值,将得不到新的id号。)下面的代码就是根据这点来判断的。 -------------------------- 后台代码: Import System.Text Import System.Data.SqlClient Import System.Security.Cryptography '加密类 '添加用户函数 Sub ADDUser(byval struserid as string,byval strpassword as string) '1. 创建连接 dim strConnString as String '连接字符请根据实际情况修改 strConnString= "Data Source=.;Initial Catalog=test;User Id=sa;Password=;" Dim objConn as New SqlConnection(strConnString) '2. 创建Command对象 Dim objCmd as New SqlCommand("Sp_UserAdd",strConnString) objCmd.CommandType = CommandType.StoredProcedure '3. 创建参数 '创建输入参数userid Dim paramUserid as SqlParameter paramUserid = New SqlParameter("@Userid", SqlDbType.VarChar, 25) paramUserid.Value = struserid objCmd.Parameters.Add(paramUserid) '加密密码字段 Dim md5Hasher as New MD5CryptoServiceProvider() Dim hashedBytes as Byte() Dim encoder as New UTF8Encoding() hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(strpassword)) '创建输入参数Password Dim parampassword as SqlParameter parampassword = New SqlParameter("@Password", SqlDbType.Binary, 16) parampassword.Value = hashedBytes objCmd.Parameters.Add(parampassword) '创建输出参数Pkid Dim paramPkid as SqlParameter paramPkid = New SqlParameter("@Pkid", SqlDbType.int, 4) paramPkid.Direction = ParameterDirection.Output objCmd.Parameters.Add(paramPkid) try objConn.Open() objCmd.ExecuteNonQuery() objConn.Close() '得到存储过程的返回值 dim user_Id as integer= paramPkid.Value return user_Id.ToString catch objConn.Close() return String.Empty '返回空值 end try end sub '在需要添加用户的事件中 dim struser_id as string=Adduser(用户名,密码值) if not struser_id="" then '判断过程Adduser返回值 '不为空,无相同的用户名 '你需要处理的代码 else '如果为空,则表示有数据库里有相同的用户名 '你想显示的错误信息或处理代码 end if

|