c# 调用mysql存储过程 返回值_c# 调用带有返回值的存储过程

本文展示了如何在C#中通过SqlConnection对象创建连接,使用SqlCommand执行SQL Server存储过程,并处理输入和输出参数及返回值。示例包括设置命令对象、参数方向、执行存储过程以及获取输出参数和返回值。
摘要由CSDN通过智能技术生成

先在SQL下建立一个存储过程:

create procedure procedure_bbb

@name char(10),

@address char(50) output

as

select @address=address from bbb where name=@name

if @@error<>0

return -1

else

return 0

go

下面是C#代码:

using System;

using System.Threading;

using System.Data;

using System.Data.SqlClient;

namespace program

{

class wangjun

{

static void Main(string[] args)

{

//建立连接数据库对象sc

SqlConnection sc = new SqlConnection();

//设置连接字符串

sc.ConnectionString = "server=.;database=wangjun;uid=sa;pwd=sqlserver";

try

{

//使用连接对象连接到数据库

sc.Open();

//使用连接对象建立命令对象cmd

SqlCommand cmd = sc.CreateCommand();

//设置命令对象的字符串值

cmd.CommandText = "procedure_bbb";

//设置命令对象的类型为存储过程

cmd.CommandType = CommandType.StoredProcedure;

//设置一个输入参数值为"大彪"

cmd.Parameters.Add("@name", SqlDbType.Char, 10).Value = "大彪";

//新建一个参数对象sp,它由cmd.parameters.add("@address",SqlDbType.Char,50)的返回值来得到实例

SqlParameter sp = cmd.Parameters.Add("@address",SqlDbType.Char,50);

//设置参数对象sp的范围是输出参数 output

sp.Direction = ParameterDirection.Output;

//新建一个参数对象sp2,它由cmd.Parameters.Add("@return",SqlDbType.Int)的返回值来得到实例

SqlParameter sp2 = cmd.Parameters.Add("@return",SqlDbType.Int);                //设置参数对象sp2的范围是得到返回值 returnvalue

sp2.Direction = ParameterDirection.ReturnValue;

//执行命令对象

cmd.ExecuteNonQuery();

//从返回值参数中得到返回数值 output参数的值

string s = (string)sp.Value;

//从返回值参数中得到返回数值 returnvalue参数的值

int n = (int)sp2.Value;                //打印这两个参数

Console.WriteLine("{0}:{1}", s, n.ToString());

//Console.WriteLine(s);

}

catch (SqlException e)

{

Console.WriteLine("出现错误{0}", e.Message);

}

finally

{

//关闭数据库

sc.Close();

}

}

}

}

使用SqlCommandBuilder静态方法填充命令对象参数

using System;

using System.Data;

using System.Data.SqlClient;

namespace program

{

class wangjun

{

static void Main(string[] args)

{

//建立连接数据库对象

SqlConnection sc = new SqlConnection("server=.;database=wangjun;uid=sa;pwd=sqlserver");

try

{

//打开数据库

sc.Open();

//使用连接对象建立数据库命令对象

SqlCommand cmd = sc.CreateCommand();

//为数据库命令对象添加命令语句

cmd.CommandText = "procedure_bbb";

//设置数据库命令类型为commandtype.storedprocedure 存储过程

cmd.CommandType = CommandType.StoredProcedure;

//使用静态方法sqlcommandbuilder的driveparameter方法填充cmd参数

SqlCommandBuilder.DeriveParameters(cmd);

//设置输入参数的值

cmd.Parameters["@name"].Value = "大彪";

cmd.Parameters["@address"].Value = "";

//开始运行存储过程

cmd.ExecuteNonQuery();

//得到存储过程结果

string s = (string)cmd.Parameters["@address"].Value;

//打印结果

Console.WriteLine(s);

}

catch (SqlException e)

{

Console.WriteLine("出现错误{0}", e.Message);

}

finally

{

//关闭连接

sc.Close();

}

}

}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值