using System.Data.SqlClient;
//如果存储过程没有输入和输出参数,而且不返回查询结果 SqlCommand cmd = new SqlCommand("存储过程名", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
                         //如果存储过程带输入参数

   SqlCommand cmd = new SqlCommand("存储过程名", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("存储过程输入参数变量名", 数据类型));
//如cmd.Parameters.Add(new SqlParameter("@riqi", SqlDbType.DateTime, 8));
//把具体的值传给输入参数
cmd.Parameters["存储过程输入参数"].Value =具体的值;
//如cmd.Parameters["@riqi"].Value = this.textBox1.Text;
//执行存储过程
cmd.ExecuteNonQuery();
                           //如果存储过程带输出参数

   SqlCommand cmd = new SqlCommand("存储过程名", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("存储过程输出参数变量名", 数据类型));
cmd.Parameters["存储过程输出参数变量名"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
//显示输出参数的值cmd.Parameters["存储过程输出参数变量名"].Value
//如this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();
                          //如果存储过程带输出和输出参数

   SqlCommand cmd = new SqlCommand("存储过程名", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("存储过程输入参数变量名", 数据类型));
cmd.Parameters["存储过程输入参数"].Value =具体的值;
cmd.Parameters.Add(new SqlParameter("存储过程输出参数变量名", 数据类型));
cmd.Parameters["存储过程输出参数变量名"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
//显示输出参数的值cmd.Parameters["存储过程输出参数变量名"].Value
//如this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString();
调用带输入参数的存储过程

【例2】创建存储过程AddNewCategory实现往Category表中添加新的商品类别,新的商品分类名称CategoryName作为输入参数输入。
CREATE PROCEDURE AddNewCategory
(@categoryName nvarchar(50))
AS
INSERT INTO Category (CategoryName) VALUES (@categoryName)
【例】调用上述存储过程AddNewCategory
try
{
// 数据库连接字符串
string connStr = "server=localhost;uid=sa;pwd=;database=eshop";
// 创建Connection 对象
SqlConnection conn = new SqlConnection(connStr);
// 打开数据库连接
conn.Open(); SqlCommand cmd = new SqlCommand("AddNewCategory", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@categoryName", SqlDbType.NVarChar,50));
cmd.Parameters["@categoryName"].Value = this.textBox1.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("插入成功");
} catch
{
MessageBox.Show("操作不成功");
return;
}
                               调用带输入和输出参数的存储过程

【例1】创建存储过程ShoppingCartItemCount获取某购物车中购物种数并作为输出参数输出,购物车编号CartID为输入参数。
CREATE Procedure [dbo].[ShoppingCartItemCount]
( @CartID nvarchar(50),
@ItemCount int OUTPUT
)
AS
SELECT @ItemCount = COUNT(ProductID) FROM ShoppingCart
WHERE CartID = @CartID
【例】调用上述存储过程ShoppingCartItemCount
try
{
// 数据库连接字符串
string connStr = "server=localhost;uid=sa;pwd=;database=eshop";
// 创建Connection 对象
SqlConnection conn = new SqlConnection(connStr);
// 打开数据库连接
conn.Open(); SqlCommand cmd = new SqlCommand("ShoppingCartItemCount", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@CartID", SqlDbType.NVarChar,50));
cmd.Parameters["@CartID"].Value = this.textBox2.Text;
cmd.Parameters.Add(new SqlParameter("@ItemCount",SqlDbType.Int));
cmd.Parameters["@ItemCount"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
//显示输出参数的值cmd.Parameters["存储过程输出参数变量名"].Value
this.textBox3.Text = cmd.Parameters["@ItemCount"].Value.ToString(); } catch
{ MessageBox.Show("操作不成功");
return;
}

实际例子:

 string constr = "server=192.168.9.111;database=111;uid=sa;pwd=1111234";
using(SqlConnection conn=new SqlConnection(constr))
{
conn.Open(); using (SqlCommand cmd = new SqlCommand("p_pageSelect", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@num", SqlDbType.Int));
cmd.Parameters.Add(new SqlParameter("@tableName", SqlDbType.NVarChar, 50));
cmd.Parameters.Add(new SqlParameter("@startNum", SqlDbType.Int)); cmd.Parameters["@num"].Value = this.tbNum.Text;
cmd.Parameters["@tableName"].Value = this.cmbTableName.Text;
cmd.Parameters["@startNum"].Value = this.tbStartNum.Text;
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet(); sda.Fill(ds);
dgvData.DataSource= ds.Tables[0]; }
}

C#调用存储过程的ADO.Net的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 存储过程分页 Ado.Net分页 EF分页 满足90%以上

    存储过程分页: create proc PR_PagerDataByTop @pageIndex int, @pageSize int, @count int out as select top(@p ...

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

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

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

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

  9. ASP调用存储过程访问SQL Server

     ASP调用存储过程访问SQL Server 2011-02-15 10:22:57 标签:asp 数据库 sQL 存储过程 Server ASP和存储过程(Stored Procedures)的文章 ...

随机推荐

  1. printf 的格式

    1) 类型类型字符用以表示输出数据的类型,其格式符和意义如下表所示: %c  输出单个字符 %s  输出字符串 %u  以十进制形式输出无符号整数 %d  以十进制形式输出带符号整数(正数不输出符号) ...

  2. 在Build Path中包含其他工程

    ------------siwuxie095                                 在 TestBuildPath 的 Build Path 中包含 SupportProje ...

  3. mysql GROUP_CONCAT 可以将分组的字段进行拼接处理.

    GROUP_CONCAT 可以将分组的字段进行拼接处理. SELECT g.id, g.merchant_id, g. NAME, g.introduction, g.cover_pic, g.pla ...

  4. fopencookie函数详解

    今天看DPDK时,看到了fopencookie函数,以前基本没有用过该函数,乘此机会好好看看如何使用. 1. 函数头文件与函数原型 函数头文件: #include <stdio.h> 函数 ...

  5. 19、SOAP安装,运用与比对结果解释

    转载:http://www.dengfeilong.com/post/Soap2.html https://blog.csdn.net/zhu_si_tao/article/details/71108 ...

  6. mysql导入导出文本文件

    MySQL导入出文本文件只能到处数据,不能到处结构,不过也算备份数据一种方法. 导入文本文件 在此像导入csv文件 也是类似 load data local infile 'd:/insert.txt ...

  7. Linux命令累积

    常用命令 ipconfig  -查看本机ip.接口等信息 ping ip   -ping远程服务器或终端 cd ~      -返回根目录 cd .. 返回上级目录 cd ../..  返回上两级目录 ...

  8. 编写javascript的基本技巧一

    自己从事前端编码也有两年有余啦,时间总是比想象中流逝的快.岁月啊,请给我把时间的 脚步停下吧.不过,这是不可能的,我在这里不是抒发时间流逝的感慨.而是想在这分享两 年来码农生活的一些javascrip ...

  9. poj2002 Squares(hash+折半枚举)

    Description A square is a 4-sided polygon whose sides have equal length and adjacent sides form 90-d ...

  10. delphi xe6 for android 自带控件LocationSensor优先使用GPS定位的方法

    delphi xe6 for android LocationSensor控件默认是优先使用网络定位,对定位精度要求高的应用我们可以修改原码直接指定GPS定位. 修改方法: 将C:\Program F ...