博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ADO.NET调用存储过程
阅读量:6848 次
发布时间:2019-06-26

本文共 2752 字,大约阅读时间需要 9 分钟。

建表

CREATE TABLE [tab_cJ] ([id] [int] IDENTITY (1, 1) NOT NULL PRIMARY KEY,[name] [varchar] (50) ,[age] [int] NULL ,[info] [varchar] (200))

创建储存过程

CREATE PROCEDURE QueryInfoByName@name varchar(50),@age intASselect info from tab_cj where [name]=@name and age=@ageGO

调用

using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=test;Integrated Security=True"))        {            SqlCommand cmd = conn.CreateCommand();            cmd.CommandType = CommandType.StoredProcedure; //指定执行存储过程操作            cmd.CommandText = "QueryInfoByName"; //存储过程名称             //对应存储过程QueryInfoByName的第一个参数@name            SqlParameter parName = new SqlParameter("@name", SqlDbType.VarChar, 50);            //指定参数@name要转入的值            parName.Value = "aa";            //对应存储过程QueryInfoByName的第二个参数@age            SqlParameter parAge = new SqlParameter("@age", SqlDbType.Int);            //指定参数@age要转入的值            parAge.Value = 12;            //这一步非常重要,一定将设置好的两个参数类型添加到Command对象的参数集合里            cmd.Parameters.Add(parName);            cmd.Parameters.Add(parAge);            //方式一,查询回来的结果需要显示在DataGrid之类的控件上            DataSet ds = new DataSet();            SqlDataAdapter adapter = new SqlDataAdapter(cmd);            adapter.Fill(ds);            //方式二,按单个值读取             conn.Open();            SqlDataReader reader = cmd.ExecuteReader();            if (reader.HasRows)            {                while (reader.Read())                {                    Response.Write(reader.GetString(0));                }            }        }

调用具有输出参数的存储过程

创建储存过程

create procedure getAge(@name varchar(50),@age int output)asselect @age=age from tab_cJ where [name]=@name

调用储存过程

using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=test;Integrated Security=True"))        {            SqlCommand cmd = conn.CreateCommand();            cmd.CommandType = CommandType.StoredProcedure; //指定执行存储过程操作            cmd.CommandText = "getAge"; //存储过程名称             SqlParameter parName = new SqlParameter("@name", SqlDbType.VarChar, 50);            parName.Value = "aa";            //对应存储过程getAge的输出参数@age            SqlParameter parAge = new SqlParameter("@age", SqlDbType.Int);            parAge.Direction = ParameterDirection.Output;            cmd.Parameters.Add(parName);            cmd.Parameters.Add(parAge);            try            {                conn.Open();                cmd.ExecuteNonQuery();                int i = int.Parse(parAge.Value.ToString());                Response.Write(i.ToString());                conn.Close();            }            catch(Exception ex)            {                Response.Write(ex.ToString());            }                    }

摘取至——————

如侵自删

转载于:https://www.cnblogs.com/yellowcool/p/7403421.html

你可能感兴趣的文章
Team Project Proposal for ASE Course---query suggestion by 3D tag cloud
查看>>
IDEA2016.3搭建Struts2+Hibernate+Spring项目环境
查看>>
多线程(一)线程创建的三种方式
查看>>
HDU-4310 Hero 贪心Or动态规划
查看>>
linux软件管理 YUM命令
查看>>
windows下memcache安装及配置
查看>>
第一次作业人工智能
查看>>
labeled LDA,Hierarchically Supervised LDA
查看>>
JavaScript 捕获按键
查看>>
记录Javascript数组的方法参考
查看>>
截图软件
查看>>
关于抽奖概率的问题
查看>>
《鸟哥的私房菜阅读摘要》——linux的简介和计算机基础
查看>>
hql语句的case when then else end问题
查看>>
CF786E ALT
查看>>
引用与指针的区别
查看>>
MongoCola Web化 -- 1. 是不是什么软件都要Web化的讨论 2.新公司,新起点 3.MongoCola 新版本发布...
查看>>
LeetCode (6): ZigZag Conversion
查看>>
HDU 4424 Conquer a New Region 并查集
查看>>
捣乱Linux环境下的C语言
查看>>