建表

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

创建储存过程

CREATE PROCEDURE QueryInfoByName
@name varchar(),
@age int
AS
select info from tab_cj where [name]=@name and age=@age
GO

调用

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, );
//指定参数@name要转入的值
parName.Value = "aa";
//对应存储过程QueryInfoByName的第二个参数@age
SqlParameter parAge = new SqlParameter("@age", SqlDbType.Int);
//指定参数@age要转入的值
parAge.Value = ; //这一步非常重要,一定将设置好的两个参数类型添加到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());
}
}
}

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

创建储存过程

create procedure getAge
(
@name varchar(),
@age int output
)
as
select @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, );
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());
} }

摘取至——————

春华秋实

如侵自删

ADO.NET调用存储过程的更多相关文章

  1. C# - ADO.Net 调用存储过程

    ------------------------存储过程调用,创建DataSet:----------------------//数据库连接字符串string connStr = @"Dat ...

  2. [转] ADO.NET调用存储过程带输出参数或返回值

    CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(), @studentname nvarchar() OUTPUT AS BEGIN S ...

  3. ADO.NET系列之事务和调用存储过程

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 前几篇我们介绍了Conne ...

  4. c++ ado 调用存储过程并得到输出参数和返回值

    // AccessSqlserverByAdo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h ...

  5. SSIS使用OleDB和Ado.Net两种方式调用 存储过程

    在使用”执行 SQL 任务“组件调用存储过程时,连接方式使用OleDB和Ado.Net稍有不同,结合图例说明一下 当我们使用OleDB时,设置的截图如下: 参数使用?来代替,Parameter Nam ...

  6. ADO.NET笔记——调用存储过程

    相关知识: 在ADO.NET访问SQL Server时,鼓励使用存储过程取代常规的SQL语句. 存储过程有下列优点: 存储过程中的SQL语句将会经过预先的解析和编译,然后存放在数据库服务器上行.调用的 ...

  7. ADO.NET访问SQL Server调用存储过程带回参

    1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign  use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...

  8. 数据库复习总结(20)-存储过程以及.net调用存储过程

    一.存储过程(注意区分将一段select语句进行封装叫做视图)(1)将一段t-sql脚本进行封装,以完成一个逻辑操作(2)创建存储过程:            create proc 名称      ...

  9. Asp调用存储过程,command.CreateParameter 参数值的类型说明

    Asp调用存储过程,command.CreateParameter 参数值的类型说明 Asp调用各种存储过程,包括带参数,无参数,输入输出参数,带返回值等. 1,调用没有参数的存储过程 <% s ...

随机推荐

  1. Python实现单词查询&文件查找

    最近学C++ Primer,做到第十二章有个习题.要求针对英文文本,对于用户想搜索的单词,打印出该单词在文本中出现的总次数,单词所出现行号及对应的行内容:单词在一行内出现多次,只打印该行一次.C++的 ...

  2. This Adroid SDK r…

    有时候开启eclipse时会出现如下提示框: This Adroid SDK requires Android Developer

  3. ASP.NET 导出excel文件出现乱码的解决办法

    string html =TABLE ;//<table>标签,可以是多张表string modified = Regex.Replace(html, "<table &g ...

  4. Vue组件模板形式实现对象数组数据循环为树形结构

    数据结构为数组中包含对象--树形结构,用Vue组件的写法实现以下的效果: 树形列表,缩进显示层级,第5级数据加底色,数据样式显色,点击展开折叠数据.本文为用Vue实现方式,另有一篇为用knockout ...

  5. 【原创】IE8升级到IE11控制台报错的解决方案

    公司win7 64位 英文版系统,刚从IE8升级到IE11,在我F12准备调试js的时候,竟然发现控制台报错了!天啦撸,顿时慌了有木有! 网上搜索了半天,解决方案如下: http://www.micr ...

  6. iOS开发 Android开发 移动Web开发

    通常,来自移动端的测试需求涉及2类: iOS/Android 移动端H5 因此,需要把基础的概念清清楚楚地落地 Client端 Server端 平台描述 语言 相同 差别 / web平台 web平台开 ...

  7. 已有 JFFs2文件系统的修改

    项目应用中,对于前人留下的JFFS2的文件,有时候我们需要修改,但是苦于没有源文件,实际操作很多时候无所适从.每次支持生产之后再进行人为的升级.这样费时费力,也给生产人员增加了负担. 为了解决这个问题 ...

  8. 原创:使用脚本获取本机IP地址

    接来下又到了老葵花哥哥开课时间了 今天讲的有些简单 可以是涂鸦之做 也可以是无聊的发呆的杰作 我想取IP地址在大家生活中很常用 今天就给大家介绍我的六种使用脚本取IP地址的方法 很多人想问我 为什么是 ...

  9. Python下的OpenCV学习 02 —— 图像的读取与保存

    OpenCV提供了众多对图片操作的函数,其中最基本的就是图片的读取与输出了. 一.读取图片 利用OpenCV读取一张图片是非常容易的,只需要用到 imread() 函数,打开shell或者cmd,进入 ...

  10. HTML,CSS,JS之间的关系

    HTML,CSS,JS之间的关系 本笔记是自己在浏览了各位前辈后拼凑总结下来的知识,供自己使用消化.后面会附上各种链接地址,尊重原创 最准确的网页设计思路是把网页分成三个层次,即:结构层(HTML). ...