asp.net 存储过程执行实例

来源:互联网 发布:国内工程预算软件 编辑:程序博客网 时间:2024/06/04 23:35

protected void Page_Load(object sender, EventArgs e)
    {
       
/*
        sql脚本-创建学生表
        create table student(id int,name varchar(50))
        insert into student select 1,'小张'
        insert into student select 2,'小王'
       
        存储过程 功能:查询学生名称
        create proc proc_getName
        @id int,
        @name varchar(50) output
        as
        begin
        if exists(select 1 from student where id=@id)
        select @name=name from student where id=@id
        else
        set @name='--未找到学生--'
        end
       
*/
    }
   
//执行存储过程
    public void RunProcedure(string storedProcName, IDataParameter[] parameters)
    {
       
string connectionString = "server=.;database=my;uid=sa;pwd=bb";//数据库连接串
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            DataSet dataSet
= new DataSet();
            connection.Open();
            SqlDataAdapter sqlDA
= new SqlDataAdapter();
            SqlCommand command
= new SqlCommand(storedProcName, connection);
            command.CommandType
= CommandType.StoredProcedure;//类型为存储过程
            if (parameters != null)//检查过程参数
            {
               
foreach (SqlParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
            }
            sqlDA.SelectCommand
= command;
            command.ExecuteNonQuery();
//执行过程
            connection.Close();
        }
    }
   
protected void Button1_Click(object sender, EventArgs e)
    {
       
//声明参数
        SqlParameter[] parameters = {
               
new SqlParameter("@id", SqlDbType.Int),
               
new SqlParameter("@name", SqlDbType.VarChar,50)
            };
        parameters[
0].Value = txtStudentid.Text.Trim(); ;//学生编号 id
        parameters[1].Direction = ParameterDirection.Output;//设置参数类型
        RunProcedure("proc_getName", parameters);//执行过程方法  proc_getName为存储过程名称
        txtStudentName.Text = parameters[1].Value.ToString();//取得返回值
    }