今天就跟大家聊聊有关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存储过程有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。