--有输入参数的存储过程--

create proc GetComment

(@commentid int)

as

select * from Comment where CommentID=@commentid

C# 调用有输入参数的存储过程

SqlConnection conn=new SqlConnection("Server=.;Database=MyDB;uid=sa;pwd=123456");

SqlCommand cmd=new SqlCommand();

cmd.Connection=conn;

cmd.CommandType=CommandType.StoredProcedure;

cmd.CommandText="GetComment";

cmd.Parameters.Clear();

cmd.Parameters.Add("@commentid",SqlDbType.Int).Value=1;

DataTable dt=new DataTable();

SqlDataAdapter da=new SqlDataAdapter(cmd);

da.Fill(dt);

GridView1.DataSource=dt;

GridView1.DataBind();

--有输入与输出参数的存储过程--

create proc GetCommentCount

@newsid int,

@count int output

as

select @count=count(*) from Comment where NewsID=@newsid

SqlConnection conn=new SqlConnection("Server=.;DataBase=MyDB;uid=sa;pwd=123456");

SqlCommand cmd=new SqlCommand();

conn.Open();

cmd.Connection=conn;

cmd.CommandType=CommandType.StoredProcedure;

cmd.CommandText="GetCommentCount";

cmd.Parameters.Clear();

cmd.Parameters.Add("@newsid",SqlDbType.Int).Value=2;

SqlParameter sp=new SqlParameter();

sp.ParameterName="@count";

sp.SqlDbType=SqlDbType.Int;

sp.Direction=ParameterDirection.Output;

cmd.Parameters.Add(sp);

Response.Write(sp.Value.ToString());

--返回单个值的函数--

create function MyFunction

(@newsid int)

returns int

as

begin

declare @count int

select @count=count(*) from Comment where NewsID=@newsid

return @count

end

SqlConnection conn=new SqlConnection("Server=.;Database=MyDB;uid=sa;pwd=123456");

SqlCommand cmd=new SqlCommand();

conn.Open();

cmd.Connection=conn;

cmd.CommandText="MyFunction";

cmd.CommandType=CommandType.StoredProcedure;  -----这儿要设置为存储过程

cmd.Parameters.Add("@newsid",SqlDbType.Int).Value=2;

SqlParameter sp=new SqlParameter();

sp.ParameterName="@count";

sp.SqlDbType=SqlDbType.Int;

sp.Direction=ParameterDirection.ReturnValue;

cmd.Parameters.Add(sp);

cmd.ExecuteNonQuery();

Response.Write(sp.Value.ToString());

--调用方法--

declare @count int

exec @count=MyFunction 2

print @count

--返回值为表的函数--

Create function GetFunctionTable

(@newsid int)

returns table

as

return

(select * from Comment where NewsID=@newsid)

--返回值为表的函数的调用--

select * from GetFunctionTable(2)

SqlConnection conn=new SqlConnection("Server=.;Database=MyDB;uid=sa;pwd=123456");

SqlCommand cmd=new SqlCommand();

conn.Open();

cmd.Connection=conn;

cmd.CommandType=CommandType.Text;//注意这儿设置为文本

cmd.CommandText="Select * from GetFunctionTable(@newsid)";

SqlDataReader dr=cmd.ExecuteReader();

DataTable dt=new DataTable();

dt.Load(dt);

GridView1.DataSource=dt;

GridView1.DataBind();

转载于:https://blog.51cto.com/1906754/502000

sqlserver创建存储过程、函数、相关推荐

  1. 为什么sqlserver创建存储过程成功,却找不到这个存储过程呢

    1.为什么sqlserver创建存储过程成功,却找不到这个存储过程呢? 需要点击工具上,创建存储过程,在那个里面去写存储过程,然后再刷新存储过程就会出现了 注意:如果是在新建查询上面,直接写sql创建 ...

  2. sqlserver 创建存储过程及基本语法

    本文记录sqlserver 创建存储过程及基本语法的讲解,附上作者实现功能的实例 背景:作者的task是需要两个数据库之间进行数据迁移,本可以用java程序来实现,后面觉得可以学习下存储过程,故采用这 ...

  3. SQLServer 的存储过程与java交互

    一.   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程 ...

  4. SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...

    存储过程有三种返回: 1.   用return返回数字型数据 2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行) 3.   直接在存储过程中用select返回结果集,可 ...

  5. 存储过程和函数——概述||创建存储过程||调用存储过程||查看存储过程||删除存储过程

    存储过程和函数概述 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合, 调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理 ...

  6. 2、MySQL创建存储过程(CREATE PROCEDURE)(函数)

    MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程. 编写存 ...

  7. (2)存储过程中可以调用其他存储过程吗?_详解Oracle创建存储过程、创建函数、创建包及实例演示...

    概述 说句实在的,平时工作基本上不会去背啥创建存储过程.创建函数.创建包之类的语法,但是相信大家面试啥的却基本会笔试这些,所以就对存储过程.函数和包的语法做下总结,也做个备忘!这里面语法大家理解就可以 ...

  8. MYSQL中如何创建存储过程和存储函数(上篇)

    存储程序分为存储过程和存储函数.在MySQL中创建存储过程和存储函数的语句分别是create procedure 和create function.使用call语句来调用存储过程,只能用输出变量返回值 ...

  9. MySQL——创建存储过程和函数

    简单地说,存储过程就是一条或多条  SQL  语句的集合,可视为批文件,但是其作用不仅限于批处理.存储程序可以分为存储过程和函数.存储过程要用 CALL  语句来调用,并且只能用输出变量返回值. 1. ...

最新文章

  1. Android 应用程序集成Google 登录及二次封装
  2. 虚拟机+可信+云计算
  3. 3、HTML导入外部样式表(HTML导入CSS文件)
  4. 【Python】PAT-1026 程序运行时间(AC)
  5. 传奇霸业维护服务器,37传奇霸业8月18日部分区服维护计划
  6. 零跑科技实现“领跑”背后:频现“质量门”,噱头大于实际?
  7. Welcome to Xiao
  8. 学神经网络需要什么基础,神经网络需要什么基础
  9. 扩展欧几里得算法的证明
  10. pos机v1,简单pos机
  11. windows10复制粘贴键突然失效 的一个最简单的解决方法
  12. android 无线传递文件夹,android 通过WIFI实现文件传输
  13. gird布局解决 最后一行数量不对布局问题
  14. 新路由3 H大老毛子,2月20日padavan固件
  15. 【github】Support for password authentication was removed on August 13,2021.
  16. Flutter升级到预览版
  17. TatukGIS Developer Kernel ToolkitWinform GIS编辑器,C#地理信息编辑器,.NET地理信息编辑器...
  18. Notepad++工具 格式化Json文件格式
  19. Python 3.11比3.10 快60%:使用冒泡排序和递归函数对比测试
  20. plsql 查看表结构所有的字段_产品操作MySQL第2篇 – 设计一张表

热门文章

  1. 《为iPad而设计:打造畅销App》——想象iPad上的游戏
  2. MySQL还原数据库提示Unknown MySql server host
  3. 【转载】哈希表的原理,真的很难弄懂么?
  4. python xlrd简单读取excel
  5. 需求:整个网站不能出现以下两个链接。思路:检索到网站中凡是出现该链接的都让它的href值为空...
  6. HDU 5115 Dire Wolf 区间dp
  7. Java SortedSet接口
  8. UVA 10405 - Longest Common Subsequence
  9. ZLMS教学管理平台系统V1.2.0最新版本发布,支持纯Web视频直播点播,还带运营在线支付功能!完全免费提供!...
  10. Maven最佳实践:版本管理