日期:2014-05-16  浏览次数:20341 次

ADO中使用存储过程(例题)

1)写usp_Login存储过程,参数有三个,其中第三个参数为output,用来返回登陆是否成功,成功1,失败0( @uname varchar(50),  @password varchar(50),  @result bit output)


SQL Server存储过程:

数据库名:UserDB1    表名:T_Users

create proc usp_Login
@uname varchar(50),
@Password varchar(50),
@result bit output
as 
begin
declare @count int
 set @count=(select COUNT(*) from T_Users where FuserName=@uname and FPassword=@password)
 if @count>0
begin 
set @result=1
end
 else
begin
set @result=0
end
end


---------------------------------------------

在login.aspx中使用设计登陆界面 ,使用以上 存储过程。

Web.config:

<connectionStrings>
    <add name="UserDB1conStr" connectionString="Data Source=PC_THINK-THINK;Initial Catalog=UserDB1;User ID=sa; Password=111111"/>
  </connectionStrings>



login.aspx:

 protected void btnLogin_Click(object sender, EventArgs e)
        {
            string username = txtUserName.Text;
            string password = txtPassWord.Text;


            string UserConstr = ConfigurationManager.ConnectionStrings["UserDB1conStr"].ConnectionString;
            using(SqlConnection conn = new SqlConnection(UserConstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    //执行sql语句和执行存储过程最大的区别是,需要设置一个commandType
                    cmd.CommandType = CommandType.StoredProcedure;
                    string sp_name = "usp_Login";
                    cmd.CommandText = sp_name;
                    SqlParameter prm1 = new SqlParameter("@uname", username);
                    SqlParameter prm2 = new SqlParameter("@password", password);
                    SqlParameter prm3 = new SqlParameter("@result", System.Data.SqlDbType.Bit);
                    cmd.Parameters.Add(prm1);
                    cmd.Parameters.Add(prm2);
                    cmd.Parameters.Add(prm3);