C#调用SQL存储过程理论知识

萝北ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
下面的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
C#调用SQL存储过程示例演示
- /**
 - * 存储过程
 - *
 - create procedure queryStuNameById
 - (
 - @stuId varchar(10),--输入参数
 - @stuName varchar(10) output --输出参数
 - )
 - as
 - select @stuName=stuName from stuInfo where stuId=@stuId
 - *
 - */
 
- using System;
 - using System.Collections.Generic;
 - using System.Text;
 - using System.Data;
 - using System.Data.SqlClient;
 - namespace StoreProduceTest
 - {
 - public class Program
 - {
 - static void Main(string[] args)
 - {
 - Operater op = new Operater();
 - string name = op.QueryStuNameById("1234");
 - Console.WriteLine(string.Format("学号为1234的学生的姓名为{0}", name));
 - }
 - }
 - public class Operater
 - {
 - private string ConStr = "server=.;database=User;uid=sa;pwd=1234";
 - private SqlConnection sqlCon = null;
 - private SqlCommand sqlComm = null;
 - SqlDataReader dr = null;
 - public string QueryStuNameById(string Id)
 - {
 - string name = "";
 - try
 - {
 - using (sqlCon = new SqlConnection(ConStr))
 - {
 - sqlCon.Open();
 - sqlComm = new SqlCommand("queryStuNameById", sqlCon);
 - //设置命令的类型为存储过程
 - sqlComm.CommandType = CommandType.StoredProcedure;
 - //设置参数
 - sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar);
 - //注意输出参数要设置大小,否则size默认为0,
 - sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10);
 - //设置参数的类型为输出参数,默认情况下是输入,
 - sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output;
 - //为参数赋值
 - sqlComm.Parameters["@stuId"].Value = "1234";
 - //执行
 - sqlComm.ExecuteNonQuery();
 - //得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换
 - name = sqlComm.Parameters["@stuName"].Value.ToString();
 - }
 - }
 - catch (Exception ex)
 - {
 - Console.WriteLine(ex.ToString());
 - }
 - return name;
 - }
 - }
 - }
 
C#调用SQL存储过程就给大家演示到这里,希望对大家有所帮助。
                网站栏目:C#调用SQL存储过程示例演示
                
                文章路径:http://www.csdahua.cn/qtweb/news40/177240.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网