.Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵活的Lambda表达式组合,实现业务数据查询的多样性。

一、存储过程数据获取

1、存储过程

Create PROCEDURE [dbo].[CustOrderHist] @CustomerID nchar(5)

AS

SELECT ProductName, Total=SUM(Quantity)

FROM Products P, [Order Details] OD, Orders O, Customers C

WHERE C.CustomerID = @CustomerID

AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID

GROUP BY ProductName

2、实例一个执行器

string cnstr = "Data Source=(local);Initial Catalog=Northwind;User ID=test;Password=test";

ConnectionStringConnectionProvider connectionProvider = new ConnectionStringConnectionProvider(cnstr);

IStatementExecutor target = new StatementExecutor(new SqlLogger(new List<ISqlLogWriter>() { new NoOpSqlLogger() }), connectionProvider);

3、参数定义

var paramDef = new ParameterDefinition[]

{

new ParameterDefinition

{

Name = "CustomerID",

Value = "ALFKI"

}

};

4、调用ExecuteStoredProcedure获取一个IDataReader

IDataReader dataReader = target.ExecuteStoredProcedure("CustOrderHist", paramDef);

while (dataReader.Read())

{

Console.WriteLine($"ProductName: {dataReader["ProductName"]},Total: {dataReader["Total"]}");

}

二、InputOutput、OutPut参数

1、存储过程

ALTER PROCEDURE [dbo].[MyTestOutParam]

(  @testint int output,@teststr nvarchar(50) output )

AS

BEGIN

SELECT @testint=100+@testint, @teststr='test out put  测试'

END

2、参数定义

var paramDef2 = new ParameterDefinition[]

{  new ParameterDefinition

{  Name = "@testint",

DbType=DbType.Int32,

Direction=ParameterDirection.InputOutput,

Value=99,   },

new ParameterDefinition

{  Name = "@teststr",

DbType=DbType.String,

Direction=ParameterDirection.Output,

Size=100  }

};

3、调用ExecuteStoredProcedure

var dataReader2 = target.ExecuteStoredProcedure("MyTestOutParam", paramDef2);

4、调用GetParameterCollection方法获取返回值

dataReader2.GetParameterCollection(paramDef2);

最新文章

  1. Socket通讯实例-基本Socket
  2. GIT 使用文档
  3. PHP正则表达式模式修饰符 /i, /is, /s, /isU等
  4. 17-tail 简明笔记
  5. H5移动端知识点总结
  6. JAVA设计模式 之 观察者模式(JDK内置实现)
  7. c/c++:动态库 静态库 linux/windows 例子 (转)
  8. java中子类与父类中隐含的this引用的分析
  9. java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件
  10. phaser运用中,dota战术板
  11. 5.1JavaScript精华
  12. iOS 进阶 第十天(0410)
  13. PHP创建XML文件讲解
  14. Asp.net 上传文件小叙(修改FileUpload显示文字等)
  15. JS 深拷贝
  16. Linux 下Tomcat启动Cannot find ./catalina.sh
  17. SpringMVC 学习-如何搭配使用 Velocity 页面模板
  18. Tree Restoring
  19. NSIndexPath 延伸
  20. UICollectionView左对齐流水布局、右对齐流水布局

热门文章

  1. Python高级用法------字典无需提前定义key
  2. 【SoapUI】http接口测试
  3. java poi reader常用API汇总
  4. 04.Continue,和三元表达式的学习
  5. Web开发HTTP中URI和URL的情感纠葛
  6. Java使用UDP聊天程序
  7. 用于模式匹配的String方法和RegExp方法
  8. springboot 整合kafka
  9. JavaScript(Two)
  10. SQL 出现18456