//带参数的SQL语句
private void sql_param()
{
SqlConnection conn = new SqlConnection("server=WIN-OUD59R7EHCH;uid=sa;pwd=123456;database=china");
string sql = "select *from test where uid=@myid";
SqlCommand comm = new SqlCommand(sql,conn);
SqlParameter sp = comm.Parameters.Add("@myid",SqlDbType.Int);
sp.Value = ;
comm.CommandType = CommandType.Text;
SqlDataAdapter sda = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
sda.Fill(ds,"test");
this.dataGridView1.DataSource = ds.Tables[];
} //标准的存储过程
private void sql_proc()
{
SqlConnection conn = new SqlConnection("server=WIN-OUD59R7EHCH;uid=sa;pwd=123456;database=china");
conn.Open();
string sql = "proc_out";
SqlCommand comm = new SqlCommand(sql, conn);
//将Command执行类型改为存储过程的方式,默认为Text
comm.CommandType = CommandType.StoredProcedure;
//传递一个输入参数,需要赋值
SqlParameter sp = comm.Parameters.Add("@uid",SqlDbType.Int);
sp.Value = ;
//定义一个输出参数,不许需要赋值。Direction用来描述参数的类型
//Direction默认为输入参数,还有输出参数和返回值
sp = comm.Parameters.Add("@output",SqlDbType.VarChar,);
sp.Direction = ParameterDirection.Output;
/*定义过程的返回值参数,过程执行完之后,将把过程的返回值
* 赋给myreturn的Parameters赋值
*/
sp = comm.Parameters.Add("myreturn",SqlDbType.Int);
sp.Direction = ParameterDirection.ReturnValue;
/*使用SqlDataAdapter将自动完成数据库的打开和关闭过程,
* 并将执行t-sql语句或存储过程
*
* 如果存储过程只是执行相关操作,如级联删除或者更新,
* 使用sqlcommand的execute方法即可
*
*/
try
{
SqlDataAdapter sda = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
comm.ExecuteNonQuery();
//在执行完存储过程之后,可得到输出参数
string myout = comm.Parameters["@output"].Value.ToString();
//打印输出参数
MessageBox.Show("打印输出参数:" + myout);
//打印存储过程返回值
myout = comm.Parameters["myreturn"].Value.ToString();
MessageBox.Show("存储过程返回值:" + myout); sda.Fill(ds, "test");
this.dataGridView1.DataSource = ds.Tables[];
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
conn.Close();
} } //简易的存储过程的使用
private void jyc()
{
SqlConnection conn = new SqlConnection("server=WIN-OUD59R7EHCH;uid=sa;pwd=123456;database=china");
string sql = "execute proc_out 1,'12'";
SqlCommand comm = new SqlCommand(sql,conn);
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds,"test");
this.dataGridView1.DataSource = ds.Tables[]; }

存储过程

create proc proc_out @uid int,@output varchar() output as
--select结果集
select *from test where uid=@uid
set @output = '记录总数:'+convert(varchar(),(select count(*) from test))
return ;
go

C#存储过程调用的三个方法的更多相关文章

  1. 获取SqlServer存储过程定义的三种方法

    declare @p_text varchar(max) SELECT @p_text= text FROM syscomments WHERE id = ( SELECT id FROM sysob ...

  2. 使用游标、存储过程、pivot 三种方法导入数据

    --使用游标循环 if (exists (select * from sys.objects where name = 'Base_RecordTend_Test')) drop proc Base_ ...

  3. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  4. C# 中如何判断某个字符串是否为空的方法 分享了三个方法来判断字

    1. 三种常用的字符串判空串方法:Length法:bool isEmpty = (str.Length == 0);Empty法:bool isEmpty = (str == String.Empty ...

  5. SpringBoot2.0.2 Application调用的三种方式

    一.注解 @SpringBootApplication            点开查看源码是由多个注解合成的注解,其中主要的注解有:            @SpringBootConfigurati ...

  6. Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)

    jquery提供的serialize方法能够实现. $("#searchForm").serialize();但是,观察输出的信息,发现serialize()方法做的是将表单中的数 ...

  7. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  8. java 调用 C# 类库搞定,三步即可,可以调用任何类及方法,很简单,非常爽啊

    java 调用 C# 类库搞定,三步即可,可以调用任何类及方法,很简单,非常爽啊 java 调用 C# 类库搞定,可以调用任何类及方法,很简单,非常爽啊 总体分三步走: 一.准备一个 C# 类库 (d ...

  9. 三种dedecms调用相关文章的方法

    在文章的末尾或侧边栏添加相关文章可以提高用户的黏度,提高pv,增加se的好印象(哈哈),那么dedecms如何调用相关文章呢?有三种方法可以实现. 第一种dedecms调用相关文章的方法,用默认的li ...

随机推荐

  1. js字符串解析成数字

    parseInt() 先把参数转换成字符串:左边有连续的数字则返回数值,若没有则返回NaN. console.log('parseInt(null)',parseInt(null)); // NaN ...

  2. python之面向对象之继承

    #写一个类SchoolMember class SchoolMember(object): member_num = 0 def __init__(self,name,age,sex): self.n ...

  3. SQL2000清除SQL日志

    1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收 ...

  4. Web Components 规范学习

    最新的规范在这里:http://w3c.github.io/webcomponents/explainer/ 依据规范,有以下四个组成部分: Templates Custom Elements Sha ...

  5. mysql优化概述4

    一.分区 1.分区概念 将某张表数据,分别存储到不同的区域中. 每个分区,都是独立的表,都要存储该分区的数据,索引信息. 2.创建分区 创建表并指定分区的选项 create table 表名 ( 定义 ...

  6. Golang之单元测试

    文件名必须以_test.go结尾 使用go test 执行单元测试 例 package main func add(a, b int) int { return a + b } func sub(a, ...

  7. maven 发布打包部署 命令

    一.配置好jdk 二.下载安装maven http://maven.apache.org/download.cgi 三.添加环境变量 1. 添加 M2_HOME 和 MAVEN_HOME 环境变量到 ...

  8. Spring+SpringMVC+mybatis+Quartz整合

    Quartz与SpringMVC的整合 简介 Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制.Quartz允许开发人员根据时间间隔来调 ...

  9. MYSQL 问题小总结

    mysql 问题小总结 1.MySQL远程连接ERROR 2003(HY000):Can't connect to MySQL server on ‘ip’(111)的问题 通常是mysql配置文件中 ...

  10. 2018.09.07 bzoj1096: [ZJOI2007]仓库建设(斜率优化dp)

    传送门 斜率优化dp经典题. 令f[i]表示i这个地方修建仓库的最优值,那么答案就是f[n]. 用dis[i]表示i到1的距离,sump[i]表示1~i所有工厂的p之和,sum[i]表示1~i所有工厂 ...