a,首先编写好存储过程:
CREATE proc UserReg
(
@UserName nvarchar(50),
@UserRName nvarchar(50),
@Password nvarchar(50),
@UserAddress nvarchar(50),
@ID int output
)
as
if not exists (select UserName from UserInfo where UserName = @UserName)
begin
insert into Userinfo
(
UserName,
UserRName,
UserPassword,
UserAddress
)
values
(
@UserName ,
@UserRName ,
@Password ,
@UserAddress
)
set @ID = @@identity
end
else
begin
set @ID = -1
print '该用户已经存在'
end
GO
CREATE PROCEDURE UserLogin
(
@UserName nvarchar(50),
@Password nvarchar(50)
)
as
select IsNull(UserID,0)as UserID from UserInfo
where UserName = @UserName and [Password] = @Password
GO
b,新建类:zbj.cs
using System;
using System.Data;
using System.Data.SqlClient;
namespace _123
{
/// <summary>
/// zbj 的摘要说明。
/// </summary>
public class zbj
{
public static readonly string connstr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString();
public SqlConnection conn;
public SqlCommand cmd;
public SqlDataReader dr;
public SqlDataAdapter adapter;
public DataSet ds ;
public zbj()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public class UserDetails
{
public string UserName;
public string Password;
public string RealName;
public string Tele;
public string Email;
public string CardID;
public string CodeID;
public string Address;
}
public string AddUser(string UserName, string Password, string RealName, string Tele, string Email, string CardID, string CodeID, string Address)
{
conn = new SqlConnection(connstr);
cmd = new SqlCommand("AddUser",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@UserName",SqlDbType.NVarChar,50));
cmd.Parameters.Add(new SqlParameter("@Password",SqlDbType.NVarChar,50));
cmd.Parameters.Add(new SqlParameter("@RealName",SqlDbType.NVarChar,50));
cmd.Parameters.Add(new SqlParameter("@Tell",SqlDbType.NVarChar,50));
cmd.Parameters.Add(new SqlParameter("@Email",SqlDbType.NVarChar,50));
cmd.Parameters.Add(new SqlParameter("@CardID",SqlDbType.NVarChar,50));
cmd.Parameters.Add(new SqlParameter("@ZipCode",SqlDbType.NVarChar,50));
cmd.Parameters.Add(new SqlParameter("@Address",SqlDbType.NVarChar,50));
cmd.Parameters[0].Value = UserName;
cmd.Parameters[1].Value = Password;
cmd.Parameters[2].Value = RealName;
cmd.Parameters[3].Value = Tele;
cmd.Parameters[4].Value = Email;
cmd.Parameters[5].Value = CardID;
cmd.Parameters[6].Value = CodeID;
cmd.Parameters[7].Value = Address;
SqlParameter parmId = new SqlParameter("@UserID",SqlDbType.Int,4);
parmId.Direction = ParameterDirection.Output;
cmd.Parameters.Add(parmId);
try
{
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
int UserId =(int)parmId.Value;
return UserId.ToString();
}
catch(Exception error)
{
throw new Exception(error.Message,error); --捕获异常有很多方法,在这里向大家介绍这一用法,主要是在 WebForm 和 Winform 中 通用!
}
}
public string UserLogin(string UserName , string Password)
{
conn = new SqlConnection(connstr);
cmd = new SqlCommand("UserLogin",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@UserName",SqlDbType.NVarChar,50);
cmd.Parameters.Add("@Password",SqlDbType.NVarChar,50);
cmd.Parameters[0].Value = UserName;
cmd.Parameters[1].Value = Password;
int UserId =0;
try
{
conn.Open();
dr = cmd.ExecuteReader();
if( dr.Read())
{
UserId =(int)dr["UserID"];
}
conn.Close();
if(UserId==0)
{
return null;
}
else
{
return UserId.ToString();
}
}
catch(Exception error)
{
throw new Exception(error.Message,error);
}
}
}
}
注册页面:zhuce.aspx
protected System.Web.UI.WebControls.TextBox txtPassword;
protected System.Web.UI.WebControls.TextBox txtRealName;
protected System.Web.UI.WebControls.TextBox txtTel;
protected System.Web.UI.WebControls.TextBox txtMail;
protected System.Web.UI.WebControls.TextBox txtCardID;
protected System.Web.UI.WebControls.TextBox txtCodeID;
protected System.Web.UI.WebControls.TextBox txtAddress;
protected System.Web.UI.WebControls.Button btnOK;
protected System.Web.UI.WebControls.Button btnCancel;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator6;
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator2;
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator5;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator4;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator3;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.TextBox txtUserName;
private void btnOK_Click(object sender, System.EventArgs e)---在出发之前将两按钮属性设置为:causesvalidation=true
{
if(Page.IsValid){
zbj Info = new zbj(); --定义一个对象,调用zbj中的方法,这里类可以自己定义
Info.AddUser(txtUserName.Text.Trim(),txtPassword.Text.Trim(),txtRealName.Text.Trim(),txtTel.Text.Trim(),txtMail.Text.Trim(),txtCardID.Text.Trim(),txtCodeID.Text.Trim(),txtAddress.Text.Trim());
Response.Write("<script>alert('提交成功!');window.location.href='Index.aspx';</script>");}
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
Response.Redirect("zhuce.aspx");
}
登录页面:Index.aspx
protected System.Web.UI.WebControls.TextBox txtUserName;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.TextBox txtPassword;
protected System.Web.UI.WebControls.Button btnOK;
protected System.Web.UI.WebControls.Button btnCancel;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
private void btnCancel_Click(object sender, System.EventArgs e)
{
Response.Redirect("Index.aspx");
}
private void btnOK_Click(object sender, System.EventArgs e)
{
zbj Data = new zbj();
if(Data.UserLogin(txtUserName.Text.Trim(),txtPassword.Text.Trim())!=null)--这里主要验证输入的值是否正确,然后做出响应的判断
{
Response.Write("<script>alert('登录成功!');window.location.href='Default.aspx';</script>");
}
else
{
Response.Write("<script>alert('登录失败!');window.location.href='Index.aspx';</script>");
}
}