博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linq to sql 接收存储过程返回的多个结果集
阅读量:5052 次
发布时间:2019-06-12

本文共 2370 字,大约阅读时间需要 7 分钟。

故事前提。。。。。。。。。。

一、返回顺序结果集

存储过程实例

CREATE PROCEDURE MultipleResultTypesSequentiallyASselect * from productsselect * from customers

修改vs生成的存储过程代码

[Function(Name="dbo.MultipleResultTypesSequentially")]    [ResultType(typeof(MultipleResultTypesSequentiallyResult1))]    [ResultType(typeof(MultipleResultTypesSequentiallyResult2))]    public IMultipleResults MultipleResultTypesSequentially()    {        IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())));        return ((IMultipleResults)(result.ReturnValue));    }

 

调用存储过程

IMultipleResults sprocResults =    db.MultipleResultTypesSequentially();// First read products.foreach (Product prod in sprocResults.GetResult
()){ Console.WriteLine(prod.ProductID);}// Next read customers.foreach (Customer cust in sprocResults.GetResult
()){ Console.WriteLine(cust.CustomerID);}

 

二、多个结果返回集(如不同参数返回不同类型结果集)

存储过程实例

CREATE PROCEDURE VariableResultShapes(@shape int)ASif(@shape = 1)    select CustomerID, ContactTitle, CompanyName from customerselse if(@shape = 2)    select OrderID, ShipName from orders

C# 存储过程代码 

[Function(Name="dbo.VariableResultShapes")]    [ResultType(typeof(VariableResultShapesResult1))]    [ResultType(typeof(VariableResultShapesResult2))]    public IMultipleResults VariableResultShapes([Parameter(DbType="Int")] System.Nullable
shape) { IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), shape); return ((IMultipleResults)(result.ReturnValue)); }

存储过程调用

IMultipleResults result = db.VariableResultShapes(1);// Iterate through the list and write results (the company names)// to the console.foreach(VariableResultShapesResult1 compName in    result.GetResult
()){ Console.WriteLine(compName.CompanyName);}// Pause to view company names; press Enter to continue.Console.ReadLine();// Assign the results of the procedure with an argument// of (2) to local variable 'result'.IMultipleResults result2 = db.VariableResultShapes(2);// Iterate through the list and write results (the order IDs)// to the console.foreach (VariableResultShapesResult2 ord in result2.GetResult
()){ Console.WriteLine(ord.OrderID);}

 最后说一句:其实就是很不要脸的把msdn上的东西拿过来了

参考:

转载于:https://www.cnblogs.com/my-tzc/p/3515556.html

你可能感兴趣的文章
UDP基础-1
查看>>
康托展开了解一下
查看>>
通讯聊天工具(pingin)
查看>>
odoo10 高级视图
查看>>
IE 专有的事件驱动方法 Named Script
查看>>
hibernateTemplate.find或hibernateTemplate.save()执行操作没有反应,但是有sql语句
查看>>
SQL Server 查询性能优化——索引与SARG(一)
查看>>
到底还是中国人,这官话都一套一套的
查看>>
Java 排序(快排,归并)
查看>>
解析html
查看>>
linux日常管理-系统进程查看工具-ps
查看>>
HandlerThread&Looper&MessageQueue
查看>>
ROM的一种写法
查看>>
VIM Taglist + ctags
查看>>
supervisord
查看>>
ubuntu10.04安装x264库
查看>>
●数组及应用举例
查看>>
个人作业2——英语学习APP案例分析
查看>>
Oracle中的数据字典技术初级入门
查看>>
Java Build Practice 1:Ant
查看>>