ADO.NET调用存储过程
建表
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调用存储过程的更多相关文章
- C# - ADO.Net 调用存储过程
------------------------存储过程调用,创建DataSet:----------------------//数据库连接字符串string connStr = @"Dat ...
- [转] ADO.NET调用存储过程带输出参数或返回值
CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(), @studentname nvarchar() OUTPUT AS BEGIN S ...
- ADO.NET系列之事务和调用存储过程
ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 前几篇我们介绍了Conne ...
- c++ ado 调用存储过程并得到输出参数和返回值
// AccessSqlserverByAdo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h ...
- SSIS使用OleDB和Ado.Net两种方式调用 存储过程
在使用”执行 SQL 任务“组件调用存储过程时,连接方式使用OleDB和Ado.Net稍有不同,结合图例说明一下 当我们使用OleDB时,设置的截图如下: 参数使用?来代替,Parameter Nam ...
- ADO.NET笔记——调用存储过程
相关知识: 在ADO.NET访问SQL Server时,鼓励使用存储过程取代常规的SQL语句. 存储过程有下列优点: 存储过程中的SQL语句将会经过预先的解析和编译,然后存放在数据库服务器上行.调用的 ...
- ADO.NET访问SQL Server调用存储过程带回参
1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...
- 数据库复习总结(20)-存储过程以及.net调用存储过程
一.存储过程(注意区分将一段select语句进行封装叫做视图)(1)将一段t-sql脚本进行封装,以完成一个逻辑操作(2)创建存储过程: create proc 名称 ...
- Asp调用存储过程,command.CreateParameter 参数值的类型说明
Asp调用存储过程,command.CreateParameter 参数值的类型说明 Asp调用各种存储过程,包括带参数,无参数,输入输出参数,带返回值等. 1,调用没有参数的存储过程 <% s ...
随机推荐
- C++写#pragma warning(disable 4786)的作用
C++编程时,在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就很长了. 当命名超过C++规定范围255字符时,就会产生这个名为d ...
- tomcat 日志 按天自动分割 设定时任务定时清除
一.日志分割所需jar包 1.下载tomcat apache-tomcat-7.0.79.tar.gz 地址:http://www.apache.org/dist/tomcat/tomcat-7/ ...
- Python操作Zip文件
Python操作Zip文件 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt. import zipfile # ...
- centos下编译安装Openssl
yum install -y zlib*mkdir /datacd /data下载好tar包tar zxf openssl-1.0.2g.tar.gzcd openssl-1.0.2g./config ...
- 用于NLP的CNN架构搬运:from keras0.x to keras2.x
本文亮点: 将用于自然语言处理的CNN架构,从keras0.3.3搬运到了keras2.x,强行练习了Sequential+Model的混合使用,具体来说,是Model里嵌套了Sequential. ...
- 贡献你的代码,将jar包发布到Maven中央仓库以及常见错误的解决办法
前几天将自己的日志工具发布到了Maven中央仓库中.这个工具本省没有多少技术含量,因为是修改别人的源代码实现的,但是将jar发布到Maven仓库却收获颇丰,因为网上有些教程过时了,在此分享下自己发布j ...
- hdu--1548--dfs--蜘蛛牌
/* Name: hdu--1548--蜘蛛牌 Author: shen_渊 Date: 17/04/17 09:15 Description: dfs,不好想,看两个大神的代码好久http://ww ...
- ubuntu创建wifi热点(android可识别)亲测可用
转自http://jingyan.baidu.com/article/ea24bc39b03fc6da62b331f0.html 如何在ubuntu系统下创建android可识别热点?一般环境下创建的 ...
- Linux内存详解
--Linux内存详解 -----------------2014/05/24 Linux的内存上表现的不像windows那么直观,本文准备详细的介绍一下Linux的内存. 请看这下有linux命令f ...
- numpy数组、向量、矩阵运算
可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD ...