当前位置: 首页 > wzjs >正文

看网站是不是WP做的重庆企业免费建站

看网站是不是WP做的,重庆企业免费建站,网站 设计公司 温州,公司向要做一个网站要怎么做大家都知道,对于SQL Server IN是有限制条件的,如果IN里面的内容过多,在执行的时候会被自动截断,因而导致查询到的结果不是实际需要的结果。 select * from Payments where Id in (1,2,3,4,...) 为了解决上面的限制,可以…

大家都知道,对于SQL Server IN是有限制条件的,如果IN里面的内容过多,在执行的时候会被自动截断,因而导致查询到的结果不是实际需要的结果。

select * from Payments where Id in (1,2,3,4,...)

为了解决上面的限制,可以改为利用用户自定义数据类型解决。

具体内容如下:

1. Create User-Defined Data Types

CREATE TYPE [dbo].[IdTable] AS TABLE([Id] [int] NOT NULL
)
GO

2. Create Store Procedure which use IdTable as Input paramter.

CREATE PROCEDURE [dbo].[SP_GET_PAYMENTS]                  @PaymentIds [dbo].[IdTable] READONLY                 
AS   
BEGIN  select p.Id,p.DueDate   from @PaymentIds tp     join Payments p with (nolock) on tp.Id=p.Id 
END  

3. Parameter convert to IdTable. SQLMapper Extension

  public static class Extensions{/// <summary>/// This extension converts an enumerable set to a Dapper TVP/// </summary>/// <typeparam name="T">type of enumerbale</typeparam>/// <param name="enumerable">list of values</param>/// <param name="typeName">database type name</param>/// <param name="orderedColumnNames">if more than one column in a TVP, /// columns order must mtach order of columns in TVP</param>/// <returns>a custom query parameter</returns>public static SqlMapper.ICustomQueryParameter AsTableValuedParameter<T>(this IEnumerable<T> enumerable,string typeName, IEnumerable<string> orderedColumnNames = null){var dataTable = new DataTable();if (typeof(T).IsValueType || typeof(T).FullName.Equals("System.String")){dataTable.Columns.Add(orderedColumnNames == null ?"NONAME" : orderedColumnNames.First(), typeof(T));foreach (T obj in enumerable){dataTable.Rows.Add(obj);}}else{PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);PropertyInfo[] readableProperties = properties.Where(w => w.CanRead).ToArray();if (readableProperties.Length > 1 && orderedColumnNames == null)throw new ArgumentException("Ordered list of column names must be provided when TVP contains more than one column");var columnNames = (orderedColumnNames ??readableProperties.Select(s => s.Name)).ToArray();foreach (string name in columnNames){dataTable.Columns.Add(name, readableProperties.Single(s => s.Name.Equals(name)).PropertyType);}foreach (T obj in enumerable){dataTable.Rows.Add(columnNames.Select(s => readableProperties.Single(s2 => s2.Name.Equals(s)).GetValue(obj)).ToArray());}}return dataTable.AsTableValuedParameter(typeName);}}

4. Dapper code

Dapper version: 2.1.37

using System;
using System.Configuration;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using Dapper;
using log4net;
using Microsoft.Data.SqlClient;
using static Dapper.SqlMapper;public List<T> QueryEntitiesNoUTC<T>(string sqlCommand, object parameters, CommandType commandType, int commandTimeout = 60){using (SqlConnection Connection = GetSqlConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString)){try{Connection.Open();List<T> returnValues = Connection.Query<T>(sqlCommand, parameters, commandType: commandType, commandTimeout: GetCommandTimeout(commandTimeout)).ToList<T>();Connection.Close();Connection.Dispose();return returnValues;}catch (Exception e){Log.Error(e);throw;}finally{Connection.Close();Connection.Dispose();}}}

5. C# call Demo

        public static List<PaymentDto> GetPayment(List<int> paymentIds){if (paymentIds == null || paymentIds.Count == 0){return new();}var param = new { PaymentIds = paymentIds.AsTableValuedParameter("dbo.IdTable", new List<string>() { "Id" }) };var result = dapperHelper.QueryEntitiesNoUTC<PaymentDto>("SP_GET_PAYMENTS", param, CommandType.StoredProcedure, SqlConstants.GetBiggerRecordsTimeoutSeconds);return result;}

如果是多个参数:

var param = new { PaymentIds= paymentIds.AsTableValuedParameter("dbo.IdTable", new List<string>() { "Id" }), Status= status};

http://www.dtcms.com/wzjs/365932.html

相关文章:

  • 青岛专业网站制作团队企业网站制作步骤
  • 卖手表的网站大数据营销策略有哪些
  • 潮州建设网站百度有哪些产品
  • 互动网站建设什么意思点击软件
  • 设计网站用什么语言seo上海优化
  • 凡科建站做网站需要几天百度广告联盟怎么加入
  • 中山建设公司网站国内广告联盟平台
  • 国内做外卖的网站有哪些百度收录什么意思
  • 上海专业做网站较好的公司线上推广的公司
  • 北京做网站的好公司有哪些贵阳seo网站推广
  • Aspire Pro wordpressseo关键词seo排名公司
  • 平台优化方案网站seo工具
  • 做微信公众平台的网站吗网站备案查询工信部
  • 网站开发构建工具网站推广优化流程
  • 泉州网站建设技术托管廊坊网络推广优化公司
  • 泾川门户网苏州seo关键词优化外包
  • 快速建立平台网站开发建站教程详解国际重大新闻事件10条
  • 网站建设 豫icp备高端网站建设公司排名
  • php 做的应用网站建站系统主要包括
  • 沈阳高端网站建设找人帮忙注册app推广
  • 网站内页布局的不同职业培训机构管理系统
  • 企业做网站服务费广东东莞疫情最新消息
  • 珠海响应式网站建设价格宣传推广方案
  • 微信网站怎么做策划推广活动方案
  • wordpress 迅雷下载地址怎样进行seo推广
  • 如何做网站内容构架图搜索网站有哪些
  • 怎么更改自动目录的格式怎样优化网站排名
  • 新民电子网站建设哪家好河南网站推广优化
  • 网站文章怎么做标签艾滋病多久能查出来
  • 网站如何paypal支付方式seo基础入门