第三章

  一: 执行不带返回参数(Input)的存储过程  
02.           1: 首先在数据库写个存储过程, 如创建个 addUser存储过程。  
03.                  Create Proc addUser  
04.                  @ID int,  
05.                  @Name varchar(20),  
06.                  @Sex varchar(20)  
07.                  As  
08.                  Insert Into Users Values( @ID, @Name,@Sex )  
09.  
10.           2:创建SqlCommand对象,并初始SqlCommand对象 如:  
11.              SqlCommand cmd = new SqlCommand( );  
12.              cmd.CommandText = "addUser";     // 制定调用哪个存储过程  
13.              cmd.CommandType = CommandType.StoredProcedure;     // 制定Sql命令类型是存储过程, 默认的为Sql语句。  
14.              cmd.Connection = con;    // 设定连接  
15.           3:向SqlCommand对象添加存储过程参数  
16.             SqlParameter param = new SqlParameter( );   // 定义一个参数对象  
17.             param.ParameterName = "@ID";                    // 存储过程参数名称  
18.             param.Value = txtID.Text.Trim();                   // 该参数的值  
19.             cmd.Parameters.Add( param );                        // SqlCommand对象添加该参数对象  
20.             param = new SqlParameter( "@Name", txtName.Text.Trim() );  // 简写方式  
21.             cmd.Parameters.Add( param );  
22.            4:SqlCommand对象调用执行Sql的函数。 如:  
23.                  cmd.ExecuteNonQuery();  
24.            
25.       二:执行带返回参数(Output)的存储过程  
26.            1: 首先在数据库写个存储过程, 如创建个 queryUser存储过程。  
27.                alter Proc queryUser  
28.               @ID int,  
29.               @Suc varchar(10) output  
30.               As  
31.               select @Suc = 'false'  
32.               if exists( Select * From users where u_id = @ID )  
33.                       select @Suc = 'success'  
34.            2:创建SqlCommand对象,并初始SqlCommand对象 如:  
35.              SqlCommand cmd = new SqlCommand( );  
36.              cmd.CommandText = "queryUser";     // 制定调用哪个存储过程  
37.              cmd.CommandType = CommandType.StoredProcedure;     // 制定Sql命令类型是存储过程, 默认的为Sql语句。  
38.              cmd.Connection = con;    // 设定连接  
39.            3:向SqlCommand对象添加存储过程参数  
40.               SqlParameter param1 = new SqlParameter( "@ID", txtID.Text );   // 添加输入参数  
41.               cmd.Parameters.Add( param1 );  
42.               SqlParameter param2 = new SqlParameter();         // 添加输出参数  
43.               param2.ParameterName = "@Suc";                       // 名称  
44.               param2.SqlDbType = SqlDbType.VarChar;         // 输出参数的Sql类型  
45.               param2.Size = 10;                                                   // 输出参数的Sql类型大小  
46.               param2.Direction = ParameterDirection.Output;  // 指定该参数对象为输出参数类型  
47.               cmd.Parameters.Add( param2 );  
48.            4:SqlCommand对象调用执行Sql的函数。 如:  
49.                  cmd.ExecuteNonQuery();  
50.                  MessageBox.Show( param2.Value.ToString() );  // 输出输出参数的值  
51.输入参数的存储过程的示例:  
52.   try  
53.   {  
54.    SqlCommand cmd = new SqlCommand();  
55.    cmd.Connection = con;  
56.    cmd.CommandType = CommandType.StoredProcedure;  
57.    cmd.CommandText = "addUser";  
58.      
59.    SqlParameter param = new SqlParameter( );  
60.    param.ParameterName = "@ID";  
61.    param.Value = txtID.Text.Trim();  
62.    cmd.Parameters.Add( param );  
63.    param = new SqlParameter( "@Name", txtName.Text.Trim() );  
64.    cmd.Parameters.Add( param );  
65.    param = new SqlParameter();  
66.    param.ParameterName = "@Sex";  
67.    param.Value = txtSex.Text.Trim();  
68.    cmd.Parameters.Add( param );  
69.    //da.InsertCommand = cmd;  
70.      
71.    if ( cmd.ExecuteNonQuery() == 1 )  
72.    {  
73.     MessageBox.Show( "添加成功" );  
74.    }  
75.    else  
76.    {  
77.     MessageBox.Show("失败");  
78.    }  
79.   }  
80.   catch( SqlException ex )  
81.   {  
82.    MessageBox.Show( ex.Message );  
83.   }  
84.   
85.输出参数的存储过程的示例:  
86.    try  
87.   {  
88.    SqlCommand cmd = new SqlCommand( );  
89.    cmd.CommandText = "queryUser";  
90.    cmd.CommandType = CommandType.StoredProcedure;  
91.    cmd.Connection = con;  
92.      
93.    SqlParameter param1 = new SqlParameter( "@ID", txtID.Text );  
94.    cmd.Parameters.Add( param1 );  
95.    SqlParameter param2 = new SqlParameter();  
96.    param2.ParameterName = "@Suc";  
97.    param2.SqlDbType = SqlDbType.VarChar;  
98.    param2.Size = 10;  
99.    param2.Direction = ParameterDirection.Output;  
100.    cmd.Parameters.Add( param2 );  
101.      
102.    cmd.ExecuteNonQuery();  
103.  
104.    MessageBox.Show( param1.Value.ToString() );  
105.    MessageBox.Show( param2.Value.ToString() );  
106.   }  
107.   catch( SqlException ex )  
108.   {  
109.    MessageBox.Show( ex.Message );  
110.   }  
111.   




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值