--获取所有数据 根据自定义函数传人类型id返回类型名称
USE [Cloths]
GO
/****** Object:  StoredProcedure [dbo].[Proc_all]    Script Date: 05/23/2014 12:10:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE   [dbo].[Proc_all]
AS
BEGIN
	SET NOCOUNT ON;
   select ClothColorId ,Name ,dbo.myfun1(TypeId) as typename from dbo.ClothColors;
END

  这些储存过程都是修改的,吧ALTER改为create 就可以在数据库中创建

USE [Cloths]
GO
/****** Object:  UserDefinedFunction [dbo].[myfun1]    Script Date: 05/23/2014 13:53:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

 --自定义函数
ALTER FUNCTION  [dbo].[myfun1]
(
 @a varchar(50)

)
 returns varchar(50)
as
begin
 declare @name varchar(50);
 select @name=[types].name from [types] where typeid=@a;
 return @name;
end

  //既有传人参数,又有返回参数

USE [Cloths]
GO
/****** Object:  StoredProcedure [dbo].[Proc_all]    Script Date: 05/23/2014 13:56:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO--储存过程
ALTER PROCEDURE   [dbo].[Proc_all]
(
 @name varchar(50), --默认传人
 @count int output
)
AS
BEGIN
	SET NOCOUNT ON;
   select ClothColorId ,Name ,dbo.myfun1(TypeId) as typename from dbo.ClothColors where Name=@name;
   select @count=COUNT(1) from dbo.ClothColors;

END

  //是c#实现传人参数和返回参数

  SqlCommand comm = new SqlCommand();
            comm.Connection = new SqlConnection("Data Source=.;Initial Catalog=Cloths;Integrated Security=True");
            comm.CommandType = CommandType.StoredProcedure;
            comm.CommandText = "Proc_all";
            comm.Parameters.Add(new SqlParameter("@name", "大红"));//传人参数
            comm.Parameters.Add(new SqlParameter("@count",DbType.Int32));
            comm.Parameters["@count"].Direction = ParameterDirection.Output; //这个必须写,不写不会返回要传出的参数
            SqlDataAdapter sda = new SqlDataAdapter(comm);
            DataSet ds=new DataSet ();
            sda.Fill(ds);

  

sql 储存过程的使用的更多相关文章

  1. C#函数与SQL储存过程

    一点点小认识作为memo,求指正. C#的函数与SQL的储存过程有很多的相似性, 它们都是一段封闭的代码块,来提高代码的重用性,虽然现在复制粘贴很方便,但是我们在写多个函数的时候频繁的复制粘贴相同的内 ...

  2. sql储存过程in(多个参数)

    一.用sql函数 首先要创建一个截取字符串的函数,新建一个查询,把下面代码复制进去执行. 函数SqlitIn的第一个参数是储存过程要in的字符串,第二个参数是分隔符 CREATE function S ...

  3. 关于SQL储存过程中输出多行数据

    declare @num1 int           --为符合条件的总行数 select @num1=COUNT(1) from cardInfo where openDate between @ ...

  4. SQL储存过程

    基本语法 创建存储过程 create procedure sp_name @[参数名] [类型],@[参数名] [类型] as begin ......... end 以上格式还可以简写成: crea ...

  5. SQL获取所有数据库名、表名、储存过程以及参数列表

    SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogi ...

  6. SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数

    -- SQL SERVER 判断是否存在某个触发器.储存过程 -- 判断储存过程,如果存在则删除IF (EXISTS(SELECT * FROM sysobjects WHERE name='proc ...

  7. Sql语句导出数据库表结构及查询表视图储存过程名

    --一句Sql把表结构全部查询出来 SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表说明 = Case When A.colo ...

  8. SQL Server 储存过程的output 参数

    要做的参数的回传一方面要做到有储存过程的配合,再一方面也要有调用方法的配合,也就是说错误的调用方法是没有办法把值回传的. 下面是例子 --1.储存过程方面的配合 create procedure db ...

  9. Sql Server分页储存过程

    --分页储存过程if exists (select * from sys.procedures where name='Page')drop proc Pagegocreate proc Page@P ...

随机推荐

  1. 关于EXCEL if、countif 在查找数据的用法

    最近被其他部门的同事教导使用excel.突然觉得以前用代码切来切去的东西,和频繁比对的数据原来是用excel就能那么方便的算出,瞬间感觉打开了新世界的大门. 先说if和countif结合使用,来判断一 ...

  2. Gitblit 的安装使用

    1.下载gitblit,可以网上下载,也可以在下面云盘链接取 gitblit-1.8.0  下载链接:https://pan.baidu.com/s/1x7dnbyDp1FmYjMosJbGR8w 密 ...

  3. mysql5.7 rpm安装教程

    注意版本和此次更新时间 2017-12-03  版本:mysql-5.7.20-1.el6.x86_64  环境:linux6.x ​官方下载地址: wget https://dev.mysql.co ...

  4. Code First NotMapped

    转载:http://www.cnblogs.com/libingql/p/3352058.html 不需要映射的字段,添加 NotMapped 6.非数据库字段属性 在类中,如果有一些属性不需要映射到 ...

  5. 拯救大兵瑞恩 HDU - 4845(状压bfs || 分层最短路)

    1.状压bfs 这个状压体现在key上  我i们用把key状压一下  就能记录到一个点时 已经拥有的key的种类 ban[x1][y1][x2][y1]记录两个点之间的状态 是门 还是墙 还是啥都没有 ...

  6. [CF791D]Bear and Tree Jumps

    题目描述 A tree is an undirected connected graph without cycles. The distance between two vertices is th ...

  7. CAN总线疑惑与解答

    1    CAN总线2根数据线是怎么表示数据信息1和0的? Can总线采用差分数据表示方法,平时2个数据线为2.5V,表示隐性(1).当用数据0(显性)需要发送时1跟数据线上升到3.5V另一个下降到1 ...

  8. AtCoder Regular Contest 076 F - Exhausted?

    题意: n个人抢m个凳子,第i个人做的位置必须小于li或大于ri,问最少几个人坐不上. 这是一个二分图最大匹配的问题,hall定理可以用来求二分图最大匹配. 关于hall定理及证明,栋爷博客里有:ht ...

  9. BCD码(如何转换,转换方式的证明)

    1. 十进制转2421码:小于4不考虑使用最高位,从最高位向最低位依次相减. 如3=2+1,为0011:7=2+4+1,为1101 2. 十进制5211码:按照最高位,次高位,最低位,次低位的顺序依次 ...

  10. Mysq中的流程控制语句的用法

    这篇博客主要是总结一下Mysq中的流程控制语句的用法,主要是:CASE,IF,IFNULL,NULLIF 1.case CASE value WHEN [compare-value] THEN res ...