1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. using System.Text;
  5.  
  6. namespace WindowsFormsApp1
  7. {
  8. public class SQLHelper
  9. {
  10. static string connStr = "Data Source='.';Initial Catalog='DBName';User ID='sa';Password='123456';Connect Timeout=60000;";
  11.  
  12. /// <summary>
  13. /// 带临时查询表sql
  14. /// </summary>
  15. /// <param name="Sql"> 查询sql </param>
  16. /// <param name="CreateTmpTablesql"> 创建临时表语句 </param>
  17. /// <param name="TmpTableName">在数据库中创建临时表sql</param>
  18. /// <param name="TmpData">临时表数据</param>
  19. public static DataSet GetDataTmpTableSqlBulkCopy(string Sql, string CreateTmpTablesql, string TmpTableName, DataTable TmpData)
  20. {
  21. //构造SQL语句
  22. StringBuilder sb = new StringBuilder();
  23. #region 处理临时表数据为空则不处理临时表
  24. using (SqlConnection thisConn = new SqlConnection(connStr))
  25. {
  26. try
  27. {
  28. thisConn.Open();
  29. if (!string.IsNullOrEmpty(CreateTmpTablesql) && !string.IsNullOrEmpty(TmpTableName) && TmpData != null)
  30. {
  31. //创建临时表
  32. SqlCommand cmd = new SqlCommand(CreateTmpTablesql.ToString(), thisConn);
  33. object returnValue = cmd.ExecuteScalar();
  34. // 使用 SqlBulkCopy 批量保存临时表数据
  35. SqlBulkCopy bulkCopy = new SqlBulkCopy(thisConn);
  36. bulkCopy.DestinationTableName = TmpTableName;
  37. bulkCopy.BatchSize = TmpData.Rows.Count;
  38. bulkCopy.WriteToServer(TmpData);
  39. }
  40. //查询带临时表的sql
  41. DataSet ds = new DataSet();
  42. SqlDataAdapter da = new SqlDataAdapter(Sql, thisConn);
  43. da.Fill(ds);
  44. return ds;
  45. }
  46. catch (Exception ex)
  47. {
  48. return null;
  49. }
  50. finally
  51. {
  52. thisConn.Close();
  53. }
  54. }
  55. #endregion
  56. }
  57. }
  58. }
  1. // 测试调用
  2. private void Button1_Click(object sender, EventArgs e)
  3. {
  4. // 创建临时表sql语句
  5. string CreateTmpTablesql = @"select top 1 MethodName into #tmpTable from AbpAuditLogs";
  6. DataTable dataTable = new DataTable();
  7. dataTable.Columns.Add("MethodName");
  8. foreach (var item in "Index,GetAll".Split(','))
  9. {
  10. DataRow row = dataTable.NewRow();
  11. row["MethodName"] = item;
  12. dataTable.Rows.Add(row);
  13. }
  14. string sql = @"select * from AbpAuditLogs a where exists ( select * from #tmpTable tmp where a.MethodName= tmp .MethodName ) ";
  15. DataSet ds = SQLHelper.GetDataTmpTableSqlBulkCopy(sql, CreateTmpTablesql, "#tmpTable", dataTable);
  16. }

Ado.Net查询语句使用临时表做条件的更多相关文章

  1. SpringBoot使用注解的方式构建Elasticsearch查询语句,实现多条件的复杂查询

    背景&痛点 通过ES进行查询,如果需要新增查询条件,则每次都需要进行硬编码,然后实现对应的查询功能.这样不仅开发工作量大,而且如果有多个不同的索引对象需要进行同样的查询,则需要开发多次,代码复 ...

  2. SEC6 - MySQL 查询语句--------------进阶2:条件查询

    # 进阶2:条件查询 /* 语法: select 查询列表 from 表名 where 筛选条件; 分类: 一.按照条件表达式筛选 条件运算符:> < = !=(等价于<>) ...

  3. 高性能mysql-----MySQL_explain关键字分析查询语句(一)

    转载地址:https://www.cnblogs.com/xpp142857/p/7373005.html   MySQL_explain关键字分析查询语句 通过对查询语句的分析,可以了解查询语句的执 ...

  4. MySQL_explain关键字分析查询语句

    版权声明:本文为博主原创文章,转载请注明出处. 通过对查询语句的分析,可以了解查询语句的执行情况.MySQL中,可以使用EXPLAIN语句和DESCRIBE语句来分析查询语句. EXPLAIN语句的基 ...

  5. SQL注入之MySQL常用的查询语句

    MySQL是一种使用很广的数据库,大部分网站都是用MySQL,所以熟悉对MySQL数据库的注入很重要. 首先来说下MySQL注入的相关知识点 在MySQL5.0版本之后,MySQL默认在数据库存放一个 ...

  6. ORACLE中查询语句的执行顺及where部分条件执行顺序测试

    Oracle中的一些查询语句及其执行顺序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查询条件: 1)LIKE:模糊查询,需要借助两个通配符, ...

  7. linq字符串搜索条件,排序条件-linq动态查询语句 Dynamic LINQ

    在做搜索和排序的时候,往往是前台传过来的字符串做条件,参数的数量还不定,这就需要用拼sql语句一样拼linq语句.而linq语句又是强类型的,不能用字符串拼出来. 现在好了,有个开源的linq扩展方法 ...

  8. Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表)

    Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUN ...

  9. Mybatis 的分页条件查询语句编写

    刚来到一家新公司, 翻看项目代码, 发现一位同事写的查询逻辑很好, 不用插件, 一个语句完成了分页条件查询. 而我之前一般都是在业务层对参数进行判断, 如果有条件,就调用条件查询的方法, 如果没有条件 ...

随机推荐

  1. shell 修改文件所有者

    chown   用户名   文件名  -R

  2. HDU-5215 Cycle(边双/判奇偶环)

    题目 HDU-5215 Cycle 网上那个啥dfs的垃圾做法随便弄组数据已经hack掉了 做法 纯奇环偶环通过dfs树上,染色判断(由于偶环可能有两个奇环,通过一点相交,dfs树上并不能判完) 两环 ...

  3. Edusoho之X-Auth-Token

    昨天这篇文章Edusoho之Basic Authentication提到了X-Auth-Token.今天我主要讲的是Edusoho之X-Auth-Token的请求API方式. 至于为什么建议不要用HT ...

  4. CTF PHP反序列化

    目录 php反序列化 一.序列化 二.魔术方法 1.构造函数和析构函数 2.__sleep()和__wakeup() 3.__toString() 4.__set(), __get(), __isse ...

  5. Hadoop平台上HDFS和MapReduce的功能

    1.用自己的话阐明Hadoop平台上HDFS和MapReduce的功能.工作原理和工作过程. HDFS (1)第一次启动 namenode 格式化后,创建 fsimage 和 edits 文件.如果不 ...

  6. from bs4 import BeautifulSoup 引入需要安装的文件和步骤

    调用beautifulsoup库时,运行后提示错误: ImportError: No module named bs4 , 意思就是没有找到bs4模块,所以解决方法就是将bs4安装上,具体步骤如下: ...

  7. 使用良好的自定义X264编码,取得极佳质量!《转》

    原帖地址:http://www.xspliter.com/forum.php?mod=viewthread&tid=447 一般直播时使用A设定即可.你尝试设置并找出你最满意的设定 A为最需最 ...

  8. linux学习(5):linux 性能瓶颈排查

    作为开发人员,肯定遇到过以下场景,应用突然卡住了,或者异常退出,cpu占用过高等各种异常情况,一般遇到这些异常情况,该如何去查找具体原因呢? linux和jdk提供了一些命令和工具来查看内存.cpu. ...

  9. PAT 甲级 1079 Total Sales of Supply Chain (25 分)(简单,不建树,bfs即可)

    1079 Total Sales of Supply Chain (25 分)   A supply chain is a network of retailers(零售商), distributor ...

  10. [LeetCode] 750. Number Of Corner Rectangles 边角矩形的数量

    Given a grid where each entry is only 0 or 1, find the number of corner rectangles. A corner rectang ...