在C#中使用存储过程

C#SqlSugar如何调用存储过程 是一个轻量级的.NET ORM(对象关系映射器),它支持多种数据库,并提供了丰富的功能来简化数据库操作。应该是存储过程返回的结果集对应的类型。如果存储过程返回多个结果集,你可能需要使用更复杂的方法来处理。的文档和社区是获取更多信息和示例的好资源。如果有任何疑问或问题,你可以查看官方文档或参与社区讨论。注意:以上代码示例是基本的用法,并可能需要根据你的具体情况进行调整。确保你已经正确配置了。,并且你的存储过程数据库中已经定义和测试过。 阅读详情

本文以Sql Server2000为例,示例数据库为china,表为test,来说明以C#中使用sql存储过程的方法。

一、test表的创建sql语句:

create table test55
(
uid int identity(1,1),
class1 varchar(20),
class2 varchar(20),
uname varchar(20),
birth smalldatetime,
meno varchar(50)
)

alter table test55
add constraint primary_id  primary key(uid)

二、创建一个有输入、输出、返回值参数的存储过程:

create proc proc_out @uid int,@output varchar(200) output

as

--select结果集

select * from test where uid>@uid


--对输出参数进行赋值

set @output='记录总数:'+convert(varchar(10),(select count(*) from test))

--使用return,给存储过程一个返回值。

return 200;

go


三、在C#中,操作存储过程:

  3.1 使用带有参数的sql语句

  private void sql_param()
  {

   SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");
  
   //在sql语句当中引入了@myid参数
   string sql="select * from test where uid>@myid";
   SqlCommand comm=new SqlCommand(sql,conn);
         
   //使用comm的Parameters属性的add方法,对上述的@myid参数进行定义和赋值
   //SqlDbType类提供了与SqlServer数据类型一致的数据库类型
   SqlParameter sp=comm.Parameters.Add("@myid",SqlDbType.Int);
   sp.Value=10;//对输入参数赋值
    
   //Command对象默认的执行方式为Text,不写下句亦可
   comm.CommandType=CommandType.Text;
  
   //将Command对象作为DataAdapter的参数传进
   SqlDataAdapter da=new SqlDataAdapter(comm);
   DataSet ds=new DataSet();
   da.Fill(ds);

         //绑定数据到DataGrid1控件上
   this.DataGrid1.DataSource=ds;
   this.DataGrid1.DataBind();
  
  }

   3.2 存储过程的使用标准版   

private void sql_proc()
  {
    
   
   SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");
   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=10;

   //定义一个输出参数,不需赋值。Direction用来描述参数的类型
   //Direction默认为输入参数,还有输出参数和返回值型。
   sp=comm.Parameters.Add("@output",SqlDbType.VarChar,50);
   sp.Direction=ParameterDirection.Output;

   //定义过程的返回值参数,过程执行完之后,将把过程的返回值赋值给名为myreturn的Paremeters赋值。
   sp=comm.Parameters.Add("myreturn",SqlDbType.Int);
   sp.Direction=ParameterDirection.ReturnValue;
   
   //使用SqlDataAdapter将自动完成数据库的打开和关闭过程,并执行相应t-sql语句或存储过程
   //如果存储过程只是执行相关操作,如级联删除或更新,使用SqlCommand的execute方法即可。
   SqlDataAdapter da=new SqlDataAdapter(comm);
   DataSet ds=new DataSet();
   da.Fill(ds);
   
   
   //在执行完存储过程之后,可得到输出参数
   string myout=comm.Parameters["@output"].Value.ToString();
   
   //打印输出参数:
   Response.Write("打印输出参数:"+myout);

   //打印存储过程返回值
   myout=comm.Parameters["myreturn"].Value.ToString();
   Response.Write("存储过程返回值:"+myout);

   this.DataGrid1.DataSource=ds;
   this.DataGrid1.DataBind();

 

  }

   3.3 存储过程的使用最简版:  

private void sql_jyh()
  {

  //最简写法,把存储过程当作t-sql语句来使用,语法为:exec 过程名 参数

  SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");
  string sql="execute proc_out 10,'12'";
  SqlCommand comm=new SqlCommand(sql,conn);
  
  //使用SqlDataAdapter将自动完成数据库的打开和关闭过程,并执行相应t-sql语句或存储过程
  //如果存储过程只是执行相关操作,如级联删除或更新,使用SqlCommand的execute方法即可。
  SqlDataAdapter da=new SqlDataAdapter(comm);
  DataSet ds=new DataSet();
  da.Fill(ds);
  
  //绑定数据
  this.DataGrid1.DataSource=ds;
  this.DataGrid1.DataBind();
  
  }


四、总结与理解:

SqlCommand类,提供了对t-sql语句和存储过程的执行能力;它不只能执行某一个sql语句,亦可执行一组sql语句,如创建表,修改表等,可以这样理解,对于sql server而言,只要在查询分析器中可执行的一组语句,通过SqlCommand同样能得到很好的执行。SqlCommand默认执行方式,是执行t-sql语句,即comm.CommandType=CommandType.Text。在执行存储过程时,可以用"exec 过程名 参数"的形式,将其作为t-sql语句,来执行,也可以将SqlCommand的执行方式改为执行过程方式,即comm.CommandType=CommandType.StoredProcedure;两种执行存储过程方式的主要区别是,前者在获得输出参数和返回值上,很困难;后者是全面的,也是微软专门为执行存储过程而定义的全面策略。

(源自: www.zuoyefeng.com)
 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1623365


c# 调用 sqlserver 存储过程(非常完美流程简单)                                                     相信我很简单,按照步骤执行下去,你将收获很多。 准备条件1: 在sqlserver数据库中执行创建表:: USE [NavyMasterDataBase] GO /****** Object: Table [dbo].[navy_table] Script Date: ... 阅读详情

相关推荐

c#调用Mysql带参数的存储过程

这几天在学习mysql数据库的一些功能,今天在调用存储过程的时候 总是失败,最后发现居然是一个参数名称的问题,我将粘出代码事例及注意事项!1.首先创建一个带参数的存储过程存储过程名称=proc_bookinfo  存储过程2个参数 一个in 一个out in参数名称=ispay out参数名称=unPaycount这个存储过程 根据传入的未支付字段名称 输出未支付的商品数量DELI

涛哥向上专栏 6127

ORM_SQLSugar

很多人都会问您这款ORM有哪些特点,有什么竞争力,我归纳出以上几点供你参考 1、高性能 ,不夸张的说,去掉Sql数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化 2、高扩展性 ,支持自定义拉姆达函数解析、扩展数据类型、支持自定义实体特性,外部缓存等 3、稳定性和技术支持, 虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决 4、功能全面,虽然SqlSugar小巧可功能并不逊色于EF框架 5、创新、持续更新 ,向下兼容

C#调用存储过程心得

C#调用储存过程心得 第一步:创建表格 create table yin_test( ID NUMBER, NAME VARCHAR2(10), SEX VARCHAR2(2), AGE NUMBER, ADDRESS VARCHAR2(200) ) 然后添加几行数据进去 insert into yin_test values(1,‘张三’,‘男’,24,‘湖南长...

a720561252803的博客 1360

C# 如何创建存储过程以及调用存储过程

选择要创建的数据库,新建查询 ①创建一个没有参数的存储过程 例如我创建一个查询用户帐号和密码的存储过程 CREATE PROC UserProc AS //这个地方as可以省略不 BEGIN //要begin、end都要、要么都不 SELECT Account,Password FROM [User] END go 创建完成后我们可以在数据库的可编程性-存储过程中看到我们所创建的存储过程。 下面是在sql server 中执行不带参宿的存储过程,我们可以看到执行出来的结果。 执行语句为:

音尘啊 6198

C#使用SQL存储过程完整流程

唉,只怪自己学术不精,现在才学习SQL存储过程,从网上找了不少资料,可是很凌乱,定位也比较高,不适合我这样的小菜学习,现在我就来总结一下C#使用SQL存储过程完整的流程,以SQL2005为例。       先简单的说说什么是存储过程存储过程就是固化在SQL数据库系统内部的SQL语句,这样做的好处是可以提高执行效率、提高数据库的安全性、减少网络流量。接下来就讲解如何在数据库中建立一个存储过程

杨元的博客 2万+

C#存储过程

 网上搜索到的两边入门的,要进一步学习请参考存储过程手册:C#存储过程的循序渐进本文由浅入深地介绍了C#存储过程,希望对大家有所帮助。  ①为什么要使用C#存储过程?因为它比SQL语句执行快.②C#存储过程是什么?把一堆SQL语句罗在一起,还可以根据条件执行不通SQL语句.(AX作本文时观点)③来一个最简单的存储过程 CREATE PROCEDURE db

dengxingbo的专栏 1323

如何在C#使用存储过程

自私,让我们只看见自己却容不下别人。   要在C#使用存储过程,首先看看test表的创建sql语句:     create table test55  (  uid int identity(1,1),  class1 varchar(20),  class2 varchar(20),  uname varchar(20),  birth smalldatetime, 

Amir‘s IT tec 675

c#怎么调用oracle存储过程,C#调用Oracle存储过程的方法

准备:环境:pl/sql+oracle9i+vs2008创建表test:create table TEST(ID NUMBER,//编号NAME VARCHAR2(10),//姓名SEX VARCHAR2(2),//性别AGE NUMBER,//年龄ADDRESS VARCHAR2(200)//住址)1.执行不带参数的Oracle存储过程:首先编一个不带参数的or...

weixin_32541333的博客 1652

C#SQL Server存储过程之一(创建):使用C#创建SQL Server存储过程

 通常,开发人员使用的是T-SQL来创建SQL Server存储过程、函数和触发器。 而现在的SQL Server 2005已经完全支持.NET通用语言运行时(CLR)了。 这就意味着,你可以使用.NET的语言,如C#、VB.NET之类的来开发SQL Server存储过程、函数和触发器。 SQL Server 和 CLR 的集成给我们带来了n多好处,如实时编译、类型安全、增强的安全性以及增

hillspring 1万+

c# 创建mysql存储过程_C#代码如何创建存储过程

展开全部存储过程: 固化在SQL数据库系统内部的SQL语句,这样做的好处是可以提高效率、体32313133353236313431303231363533e59b9ee7ad9431333365653266改数据库的安全性、减少网络流量。1.打开SQL Server数据库,展开 “数据库”系欸但,找到使用数据库(目标数据库),展开该数据库节点,找到 “可编程性” 节点并展开,就可以看到 “存储过...

weixin_32825955的博客 567
上一篇: ASP.NET上传文件面面观
下一篇: JSP使用Sql Server存储过程
itkbase
博客等级 码龄19年 112粉丝 4647原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值