在C#中使用SQL存储过程说明

手把手教你搞定EMC EFT测试:从电源线到信号线的完整整改实战(附常见失败原因) 本文详细解析了EMC EFT测试中的常见问题及整改措施,从电源线到信号线的完整实战方案。通过四步定位法和成本最优整改策略,帮助工程师有效应对电快速脉冲群干扰,提升产品通过率并降低成本。 阅读详情

转自:http://www.cnblogs.com/NetSos/archive/2010/05/27/1745380.html

一、表的创建sql语句:

代码
CREATE   TABLE   [ tree ]  (
    
[ node_id ]   [ int ]   NOT   NULL  ,
    
[ node_name ]   [ varchar ]  ( 20 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
    
[ pat_id ]   [ int ]   NULL  ,
    
[ url ]   [ nvarchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
    
[ icon ]   [ varchar ]  ( 20 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
    
[ memo ]   [ varchar ]  ( 30 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
    
CONSTRAINT   [ tree_pk ]   PRIMARY   KEY    CLUSTERED  
    (
        
[ node_id ]
    )  
ON   [ PRIMARY ]  
) 
ON   [ PRIMARY ]
GO

 

 

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

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

as

-- select结果集

select   *   from  tree  where  node_id > @uid


-- 对输出参数进行赋值

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

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

return   200 ;

go

 

 


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

  3.1 使用带有参数的sql语句

  

  private void sql_param()

 

  {

   SqlConnection conn
=new SqlConnection("server=.;uid=sa;pwd=sa;database=sms");
   
   
//在sql语句当中引入了@myid参数
   string sql="select * from tree 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.Dgd_student.DataSource=ds;
   
this.Dgd_student.DataBind();
  
  }

 

 


3.2 存储过程的使用标准版   

代码
  private   void  sql_proc()
    {


        SqlConnection conn 
=   new  SqlConnection( " server=.;uid=sa;pwd=sa;database=sms " );
        
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 
=   4 ;

        
// 定义一个输出参数,不需赋值。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 .Dgd_student.DataSource  =  ds;
        
this .Dgd_student.DataBind();



    }

 

 

3.3 存储过程的使用最简版:   
     private   void  sql_jyh()
    
{

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

        SqlConnection conn 
= new SqlConnection("server=.;uid=sa;pwd=sa;database=SMS");
        
string sql = "execute proc_out 3,'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.Dgd_student.DataSource = ds;
        
this.Dgd_student.DataBind();

    }

带多个参数   的情况
create proc proc_out2 @uid  int ,@patid  int ,@output varchar( 200 ) output

as

-- select结果集

select 
*  from tree where node_id > @uid and pat_id  =  @patid


-- 对输出参数进行赋值

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

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

return   200 ;

go


     private   void  More()
    
{
        SqlConnection conn 
= new SqlConnection("server=.;uid=sa;pwd=sa;database=sms");
        
string sql = "proc_out2";
        SqlCommand cmd 
= new SqlCommand(sql, conn);
        
//把Command执行类型改为存储过程方式,默认为Text。
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add(
"@uid",SqlDbType.Int).Value   =   1   ;
        cmd.Parameters.Add(
"@patid", SqlDbType.Int).Value = 1;
        cmd.Parameters.Add(
"@output", SqlDbType.VarChar, 100);
        cmd.Parameters[
"@output"].Direction = ParameterDirection.Output;

        
//cmd.Parameters.Add(new SqlParameter("@uid", SqlDbType.Int)).Value = 1;//"A1**";
        
//cmd.Parameters.Add(new SqlParameter("@patid", SqlDbType.Int)).Value = 1; //"A2**";  
        
//SqlParameter param = new SqlParameter("@output", SqlDbType.VarChar, 88);
        
//param.Direction = ParameterDirection.Output;
        
// cmd.Parameters.Add(param);   

        
//cmd.ExecuteNonQuery();   
        DataSet   ds   =   new   DataSet();
        SqlDataAdapter   da   
=   new   SqlDataAdapter(cmd);   
        da.Fill(ds);
        
string rtnstr = cmd.Parameters["@output"].Value.ToString();
        Response.Write(
"打印输出参数:" + rtnstr);
        
this.Dgd_student.DataSource = ds;
        
this.Dgd_student.DataBind(); 
    }

YOLOv8剪枝 l1剪枝测试精度仅掉0.8个点,速度提高10.7fps! 文章摘要: 本文提出了一种基于组归一化的重要性评分方法GroupNormImportance,用于神经网络剪枝中的通道选择。该方法支持多种变体,包括标准L1范数、组L1范数和BN缩放因子等计算方式。核心实现包括三个关键部分:1)支持p范数计算(默认为L2);2)提供7种组重要性归约方法(如均值、最大值等);3)提供8种归一化方案(包括标准化、高斯化、LAMP等)。该方法输入一个剪枝组,输出各通道的重要性分数,通过依赖图可实现结构化剪枝。实验对比图展示了剪枝前后的效果差异,验证了该方法的有效性。 阅读详情

相关推荐

Geneformer实战:如何用Hugging Face Transformers快速搭建单细胞转录组分类模型

本文详细介绍了如何使用Geneformer和Hugging Face Transformers快速搭建单细胞转录组分类模型。通过环境准备、数据预处理、模型加载与配置、训练Pipeline构建等步骤,帮助读者掌握基于Transformer架构的单细胞数据分析技术,提升分类准确率和效率。

rl6adventurer的博客 605

C#执行SQL Server的储存过程命令

一、执行常规SQL语句 SqlConnection conn = new SqlConnection("连接字符串"); conn.Open(); //建立连接,并执行sql语句命令 SqlCommand cmd = new SqlCommand(SQLString, conn); // 执行SQL语句,返回影响的记录数 res = cmd.ExecuteNonQuery(); 二、执行储存过程 想执行储存过程命令,需要设置SqlCommand的CommandType类型,CommandType类

美奇软件开发工作室 3664

星辰超级智能体TeleClaw桌面版深度体验:央企出品的本地AI生产力助手

中国电信星辰超级智能体TeleClaw桌面版是一款本地化AI生产力助手,主打数据安全、自主高效和深度协同。作为程序员,作者实测其核心功能包括本地数据处理、长期记忆、定时任务和代码开发辅助,特别适合敏感数据处理和日常办公自动化。相比在线AI工具,TeleClaw在数据安全、合规性和自动化能力方面优势明显,但技能生态和响应速度仍有提升空间。总体评价为务实高效的本地AI助手,尤其适合对数据安全有要求的企业用户。

研究中.... 1352

C#存储过程的调用和数据库中编写

C#存储过程的调用和数据库中编写

zhang123csdn的博客 561

simulink求解器选择的小tip

给出了simulink选择求解器的一种tip,与积分初值有关。

高能阿博特的博客 2054

LabVIEW+数据库应用系列保姆级教程,第二篇增删查改

2021-7-2 先挖好坑

wwplh5520370的博客 7362

C#操作SqlServer数据库存储过程

【代码】C#操作SqlServer数据库存储过程。

qq_3517289697的博客 1319

SpringCloud详细教程(下)

SpringCloud详细教程,springcloud完全教程。Springcloud微服务教程(上)的姊妹篇:介绍了其它SpringCloud组件。

鸟哥哥的专栏 4万+

C#与MSSQL存储过程/参数化查询

C#与MSSQL存储过程/参数化查询

book_dw5189的博客 2630

杰理AC695N芯片跑iic接口的oled驱动分享

本文介绍了一个基于IIC接口的0.96寸OLED显示屏驱动程序,适用于SSD1306控制器。驱动采用软件模拟IIC方式,支持字符、数字、字符串、汉字和图片显示,测试平台为杰理AC695N系列芯片。硬件参数包括128×64分辨率,IIC接口(地址0x78),使用IO_PORTA_02(SDA)和IO_PORTA_03(SCL)引脚。驱动包含OLED主文件(oled.c/h)、软件IIC实现(soft_iic.c/h)和字体/图片数据文件(oledfont.h/bmp.h),可通过修改soft_iic.h中的引

qq_42014563的博客 882

从SOMEIP看SOA,汽车电子电器架构的转变

从SOMEIP看SOA,汽车电子电器架构的转变

天赐好车的博客 241

c#之执行SQL存储过程

目的:通过C#.NET调用SQL Server数据库中定义的存储过程。 示例一: 存储过程名:sp_login 输入参数1:@username nvarchar(50) 输入参数2:@password nvarchar(50) 输出参数:@nickname nvarchar(50) 返回值:@retval int using (SqlConnection sqlConn = new

生命不息,学习不止! 4501

Flink CDC 中 StartupOptions 模式详解

Flink CDC 的 StartupOptions 模式用于指定作业启动时从源数据读取数据的起始位置,不同的模式适用于不同的业务场景,可满足多样化的数据处理需求,主要有 Initial 模式、Earliest 模式、Latest 模式、SpecificOffset 模式和 Timestamp 模式。

RodJohnsonDoctor的专栏 849

C#中使用SQL存储过程说明

C#中使用SQL存储过程说明 一、表的创建sql语句: CREATE TABLE [tree] (     [node_id] [int] NOT NULL ,     [node_name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,     [pat_id] [int] NULL ,     [url] [nv

autumn20080101的专栏 655

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C#对Oracle存储过程的调用

C#对Oracle存储过程的调用 --创建表 declare num number;  begin  select count(1) into num from user_tables where table_name='SRCT';   --判断当前要创建的表在数据库中是否存在. if num>0  then execute immediate 'drop table '

jieloveqin的专栏 526

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c#中调用存储过程示例

1

Julyraining的博客 2058

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

通过创建存储过程显示数据表的字段名和说明

在winform程序开发中,涉及到对某个表的组合查询时会到数据库中提取表的字段名和说明,以便于用户选择查询,在C#中使用语句比较麻烦,写到存储过程中就比较方便了。USE[schoolDB] GO /******Object:StoredProcedure[dbo].[sp_showcolumn]ScriptDate:06/03/201616:45:26...

weixin_33860722的博客 429

【C#机房重构】之存储过程实战

在上一篇的文章中,讲述了一下存储过程是什么,今天这篇文章主要就是自己在实战过程中遇到的问题和解决方法以及是怎么进行实战的。

幸遇三杯酒好,况逢一朵花新 3286

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

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

weixin_32825955的博客 570

SQLServer中各种存储过程创建及执行方式

1.没有返回值:CREATE PROCEDURE dbo.ProTestAS     DECLARE @test int    SET @test = 1Go执行SQL语句:EXEC dbo.ProTest 消息:命令已成功完成。结果:无2.有返回值(使用select):CREATE PROCEDURE dbo.ProTestAS    DECLARE @test INT;    SET @tes...

DHZYKN 8万+

在C#中创建sql的存储过程方法之一

<br />    <br />using System;<br />using System.Data;<br />using System.Data.SqlClient;<br />using System.Data.SqlTypes;<br />using Microsoft.SqlServer.Server;<br /><br />创建存储过程代码<br />public partial class StoredProcedures<br />{<br />    <br />    [SqlPro

lmydream0417的专栏 420

sql server一个存储过程

一段C#版 dapper调用存储过程的代码示例 DynamicParameters dy = new DynamicParameters(); dy.Add("IdStr", "1,2,3,4,5,6,7"); var aa = conn.Query<dynamic>("MyProcedureNameGetNodesInfo", dy, commandType: CommandT...

festone000的专栏 408

存储过程详解

存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。 存储过程的好处: 1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。 2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。 3.通过存储过程能够使没有权限的

xiaojianjian1995的博客 4573
上一篇: WPF新手上路
下一篇: 详解C#委托,事件与回调函数
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值