正文

[.NET]ADO.NET调用存储过程2007-07-13 13:39:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/maliang1225/27500.html

分享到:

一: 执行不带返回参数(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 );   }

阅读(2766) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册