温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#中怎么调用SQL存储过程

发布时间:2021-06-24 16:25:35 来源:亿速云 阅读:282 作者:Leah 栏目:编程语言

今天就跟大家聊聊有关C#中怎么调用SQL存储过程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

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

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存储过程有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI