asp.net中的存储过程

在asp中调用存储过程
一: 执行不带返回参数(Input)的存储过程

           1: 首先在数据库写个存储过程, 如创建个 addUser存储过程。

                  Create Proc addUser

                  @ID int,

                  @Name varchar(20),

                  @Sex varchar(20)

                  As

                  Insert Into Users Values( @ID, @Name,@Sex )

 

 

           2:创建SqlCommand对象,并初始SqlCommand对象 如:

              SqlCommand cmd = new SqlCommand( );

              cmd.CommandText = "addUser";     // 制定调用哪个存储过程

              cmd.CommandType = CommandType.StoredProcedure;     // 制定Sql命令类型是存储过程, 默认的为Sql语句。

              cmd.Connection = con;    // 设定连接

 

           3:向SqlCommand对象添加存储过程参数

             SqlParameter param = new SqlParameter( );   // 定义一个参数对象

             param.ParameterName = "@ID";                    // 存储过程参数名称

             param.Value = txtID.Text.Trim();                   // 该参数的值

             cmd.Parameters.Add( param );                        // SqlCommand对象添加该参数对象

 

             param = new SqlParameter( "@Name", txtName.Text.Trim() );  // 简写方式

             cmd.Parameters.Add( param );

 

            4:SqlCommand对象调用执行Sql的函数。 如:

                  cmd.ExecuteNonQuery();

         

       二:执行带返回参数(Output)的存储过程

            1: 首先在数据库写个存储过程, 如创建个 queryUser存储过程。

                alter Proc queryUser

               @ID int,

               @Suc varchar(10) output

               As

              

               select @Suc = 'false'

               if exists( Select * From users where u_id = @ID )

                       select @Suc = 'success'

 

            2:创建SqlCommand对象,并初始SqlCommand对象 如:

              SqlCommand cmd = new SqlCommand( );

              cmd.CommandText = "queryUser";     // 制定调用哪个存储过程

              cmd.CommandType = CommandType.StoredProcedure;     // 制定Sql命令类型是存储过程, 默认的为Sql语句。

              cmd.Connection = con;    // 设定连接

 

            3:向SqlCommand对象添加存储过程参数

               SqlParameter param1 = new SqlParameter( "@ID", txtID.Text );   // 添加输入参数

               cmd.Parameters.Add( param1 );

 

               SqlParameter param2 = new SqlParameter();         // 添加输出参数

               param2.ParameterName = "@Suc";                       // 名称

               param2.SqlDbType = SqlDbType.VarChar;         // 输出参数的Sql类型

               param2.Size = 10;                                                   // 输出参数的Sql类型大小

               param2.Direction = ParameterDirection.Output;  // 指定该参数对象为输出参数类型

               cmd.Parameters.Add( param2 );

 

            4:SqlCommand对象调用执行Sql的函数。 如:

                  cmd.ExecuteNonQuery();

                  MessageBox.Show( param2.Value.ToString() );  // 输出输出参数的值

 

输入参数的存储过程的示例:

   try

   {

    SqlCommand cmd = new SqlCommand();

    cmd.Connection = con;

    cmd.CommandType = CommandType.StoredProcedure;

    cmd.CommandText = "addUser";

   

    SqlParameter param = new SqlParameter( );

    param.ParameterName = "@ID";

    param.Value = txtID.Text.Trim();

    cmd.Parameters.Add( param );

 

    param = new SqlParameter( "@Name", txtName.Text.Trim() );

    cmd.Parameters.Add( param );

 

    param = new SqlParameter();

    param.ParameterName = "@Sex";

    param.Value = txtSex.Text.Trim();

    cmd.Parameters.Add( param );

 

    //da.InsertCommand = cmd;

   

    if ( cmd.ExecuteNonQuery() == 1 )

    {

     MessageBox.Show( "添加成功" );

    }

    else

    {

     MessageBox.Show("失败");

    }

   }

   catch( SqlException ex )

   {

    MessageBox.Show( ex.Message );

   }

 

输出参数的存储过程的示例:

    try

   {

    SqlCommand cmd = new SqlCommand( );

    cmd.CommandText = "queryUser";

    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Connection = con;

   

    SqlParameter param1 = new SqlParameter( "@ID", txtID.Text );

    cmd.Parameters.Add( param1 );

 

    SqlParameter param2 = new SqlParameter();

    param2.ParameterName = "@Suc";

    param2.SqlDbType = SqlDbType.VarChar;

    param2.Size = 10;

    param2.Direction = ParameterDirection.Output;

    cmd.Parameters.Add( param2 );

   

    cmd.ExecuteNonQuery();

 

    MessageBox.Show( param1.Value.ToString() );

    MessageBox.Show( param2.Value.ToString() );

 

   }

   catch( SqlException ex )

   {

    MessageBox.Show( ex.Message );

   }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值