[转]C#中调用SQL存储过程(带输入输出参数的例子)
2012-12-06 15:54
316 查看
下面的CmdObj.是定义的SqlCommand对象
1、获得存储过程中return语句返回的整个存储过程函数的返回值:
//获得存储过程return的值,定义一个参数,指明其作用是接受return的值
CmdObj.Parameters.Add("RETURN_VALUE", SqlDbType.Int).Direction =ParameterDirection.ReturnValue;
通过获取该参数的方式最终获得return返回的值
int reValue = int.Parse(CmdObj.Parameters["RETURN_VALUE"].Value.ToString());
2、获得存储过程输出参数的值:
定义sql的参数,指定类型是输出
CmdObj.Parameters.Add("@outValue", SqlDbType.VarChar).Direction =ParameterDirection.Output;
获得输出参数的值
string outValue = CmdObj.Parameters["@outValue"].Value.ToString();
总结,关键地方就是指明参数的Direction 属性,使用ParameterDirection来指定,可以指定4种类型,
输入,
输出,
既是输入又是输出,
接受return
=====================================================================
示例:
view source
print?
view source
print?
1、获得存储过程中return语句返回的整个存储过程函数的返回值:
//获得存储过程return的值,定义一个参数,指明其作用是接受return的值
CmdObj.Parameters.Add("RETURN_VALUE", SqlDbType.Int).Direction =ParameterDirection.ReturnValue;
通过获取该参数的方式最终获得return返回的值
int reValue = int.Parse(CmdObj.Parameters["RETURN_VALUE"].Value.ToString());
2、获得存储过程输出参数的值:
定义sql的参数,指定类型是输出
CmdObj.Parameters.Add("@outValue", SqlDbType.VarChar).Direction =ParameterDirection.Output;
获得输出参数的值
string outValue = CmdObj.Parameters["@outValue"].Value.ToString();
总结,关键地方就是指明参数的Direction 属性,使用ParameterDirection来指定,可以指定4种类型,
输入,
输出,
既是输入又是输出,
接受return
=====================================================================
示例:
view source
print?
01 | /** |
02 | *存储过程 |
03 | * |
04 | create procedure queryStuNameById |
05 | ( |
06 | @stuId varchar (10), --输入参数 |
07 | @stuName varchar (10) output --输出参数 |
08 | ) |
09 | as |
10 | select @stuName=stuName from stuInfo where stuId=@stuId |
11 | * |
12 | */ |
print?
01 | using System; |
02 | using System.Collections.Generic; |
03 | using System.Text; |
04 | using System.Data; |
05 | using System.Data.SqlClient; |
06 | namespace StoreProduceTest |
07 | { |
08 | public class Program |
09 | { |
10 |
11 | static void Main( string [] args) |
12 | { |
13 | Operater op = new Operater(); |
14 | string name =op.QueryStuNameById( "1234" ); |
15 | Console.WriteLine( string .Format( "学号为1234的学生的姓名为{0}" , name)); |
16 | } |
17 | } |
18 | public class Operater |
19 | { |
20 | private string ConStr = "server=.;database=User;uid=sa;pwd=1234" ; |
21 | private SqlConnection sqlCon = null ; |
22 | private SqlCommand sqlComm = null ; |
23 | SqlDataReader dr = null ; |
24 | public string QueryStuNameById( string Id) |
25 | { |
26 | string name = "" ; |
27 | try |
28 | { |
29 | using (sqlCon = new SqlConnection(ConStr)) |
30 | { |
31 | sqlCon.Open(); |
32 | sqlComm = new SqlCommand( "queryStuNameById" , sqlCon); |
33 | //设置命令的类型为存储过程 |
34 | sqlComm.CommandType = CommandType.StoredProcedure; |
35 | //设置参数 |
36 | sqlComm.Parameters.Add( "@stuId" , SqlDbType.VarChar); |
37 | //注意输出参数要设置大小,否则size默认为0, |
38 | sqlComm.Parameters.Add( "@stuName" , SqlDbType.VarChar, 10); |
39 | //设置参数的类型为输出参数,默认情况下是输入, |
40 | sqlComm.Parameters[ "@stuName" ].Direction = ParameterDirection.Output; |
41 | //为参数赋值 |
42 | sqlComm.Parameters[ "@stuId" ].Value = "1234" ; |
43 | //执行 |
44 | sqlComm.ExecuteNonQuery(); |
45 | //得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换 |
46 | name =sqlComm.Parameters[ "@stuName" ].Value.ToString(); |
47 | } |
48 | } |
49 | catch (Exception ex) |
50 | { |
51 | Console.WriteLine(ex.ToString()); |
52 | } |
53 | return name; |
54 | } |
55 | } |
56 | } http://xiaohuochai.net/post-116.html |
相关文章推荐
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- C#中调用SQL存储过程(带输入输出参数的例子)
- 【C#】调用SQL存储过程(带输入输出参数的例子)
- C#中调用输入输出参数的存储过程
- mybatis调用存储过程的例子,含输入输出参数
- ASP.NET中调用存储过程带(输入/输出)参数和返回值的一些常用的例子
- ASP.NET中调用存储过程带(输入/输出)参数和返回值的一些常用的例子
- C#中调用输入输出参数的存储过程
- [网络收集]ASP.NET中调用存储过程带(输入/输出)参数和返回值的一些常用的例子