如何在C#中实现对Excel的条件查询呢?
在使用Sql条件语句对Excel进行查询时,遇到“至少一个参数没有被指定值”的问题,如何解决?
使用OleDbConnection对象创建一个到Excel的连接。
1、首先,了解一下创建连接时,字符串中的对应参数的含义: 命名空间:System.Data.OleDb
    程序集:System.Data(在 system.data.dll 中)
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
    OleDbConnection OleConn = new OleDbConnection(strConn);   OleConn.Open(); 参数解析:
    参数HDR的值:
    HDR=Yes,这代表第一行是标题,不做为数据使用;如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES。
    参数Excel 8.0对于Excel 97以上版本都用Excel 8.0 IMEX ( IMport EXport mode )设置  
    IMEX 有三种模式:   0 is Export mode   1 is Import mode  2 is Linked mode (full update capabilities) 
      我这里特别要说明的就是 IMEX 参数了,因为不同的模式代表著不同的读写行为:  
    当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。  
    当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
    当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
    意义如下 0 ---输出模式; 1---输入模式; 2----链接模式(完全更新能力)
2、下面开始解决问题:在sql语句中,如果写法不当,就可能无法实现想要的查询结果(DataSet),出现“至少有一个参数没有被指定值”。
    String sql = "SELECT * FROM  [Sheet1$] where F1=7;"; 
     OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);  DataSet OleDsExcel = new DataSet();   OleDaExcel.Fill(OleDsExcel, "Sheet1"); OleConn.Close();  
    注意连接中的:     Extended Properties='Excel 8.0;HDR=Yes;的写法
    如果写成 Extended Properties='Excel 8.0;HDR=Yes;' 即第一行作为列标题,可以指定字段名 例如 String sql = "SELECT * FROM  [Sheet1$] where Order=7;";  
    如果写成 Extended Properties='Excel 8.0;HDR=No;' 则只能指定F1,F2作为字段名 例如     String sql = "SELECT * FROM  [Sheet1$] where F1=7;"

注意:(1)是否在连接中将第一行设置为列标题;
(2)还有对应列的数据类型要一致,如果不一致也有可能导致查询结果出错。(尤其是在第一行不是列标题的时候)
【注:本文只是针对本人遇到的问题做了整理,看到网上很多人问同样的问题,发出来供大家参考,不保证对所有的都有效】

C#中使用Sql对Excel条件查询的更多相关文章

  1. [转]在Excel中使用SQL语句实现精确查询

    本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...

  2. SQL Server多条件查询的实现

    SQL Server多条件查询的实现 SQL Server多条件查询我们经常会用到,下面就教您如何使用存储过程实现SQL Server多条件查询,希望对您学习SQL Server多条件查询方面有所帮助 ...

  3. mysql进阶(五)数据表中带OR的多条件查询

    MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询.使用OR关键字时: 条件 1) 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 2) 如果不符合这些查询条件 ...

  4. 在JDBC中实现SQL语句的模糊查询

    在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...

  5. 使用Sql按日期条件查询

    --查询当天(1: select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 --查询当天(2:select * from i ...

  6. django项目中的ajax分页和条件查询。

    1,路由 #主页面路由 re_path('article/article_list/', article.article_list,name='article/article_list/'), #分页 ...

  7. 在Excel中使用SQL语句查询和筛选

    本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...

  8. Excel 中使用sql语句查询

    将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和 ...

  9. C# winform窗体设计-通过条件查询数据

    在winform 数据库设计中,有时候需要通过条件查询对应的数据,并且将数据显示在文本框(or 富文本框)中,下面,小编将讲述通过一个条件: 首先,我们需要对数据库建立连接,并且执行数据库命令,在此之 ...

随机推荐

  1. 在Gradle中使用jaxb的xjc插件

    jaxb,全称为Java Architecture for Xml Binding,是一种将java对象与xml建立起映射的技术.其主要提供两个功能,一是将java对象映射为xml,二是将xml映射为 ...

  2. 30分钟带你快速入门MySQL教程

    这是一篇真正适合初学者的MySQL数据库入门文章,哪怕你从来没有接触过数据库,或者说你从来没有听说过有数据库这东西,请一定要相信我,我当时就是这么过来的. 如果你刚开始接触MySQL数据库,或者你需要 ...

  3. 基础才是重中之重~C#中标准的IDispose模式

    回到目录 IDispose模式在C++中用的很多,用来清理资源,而在C#里,资源分为托管和非托管两种,托管资源是由C#的CLR帮助我们清理的,它是通过调用对象的析构函数完成的对象释放工作,而对于非托管 ...

  4. 理解 Lua 的那些坑爹特性

    按:最近看到了依云的文章,一方面,为Lua被人误解而感到十分难过,另一方面,也为我的好友, 依云没有能够体会到Lua的绝妙和优雅之处而感到很遗憾,因此我写了这篇文章,逐条款地说明了 依云理解中出现的一 ...

  5. salesforce 零基础学习(二十五)PickList简单联动操作

    有的时候,项目需要一些联动的操作,比如省和市之间的联动,不同的省应该显示不同的城市. 操作步骤如下: 1.新建provice字段,并且初始化相关的值 2.新建city字段,并且初始化相关的值 3.在P ...

  6. 使用反射将DataTable的数据转成实体类

    利用反射避免了硬编码出现的错误,但是实体类的属性名必须和数据库名字对应(相同) 1.利用反射把DataTable的数据写到单个实体类 /// <summary> ///利用反射把DataT ...

  7. rabbitMQ第二篇:java简单的实现RabbitMQ

    前言:在这里我将用java来简单的实现rabbitMQ.下面我们带着下面问题来一步步的了解和学习rabbitMQ. 1:如果消费者连接中断,这期间我们应该怎么办 2:如何做到负载均衡 3:如何有效的将 ...

  8. 快速入门系列--MySQL

    一直说要好好复习一下Mysql都木有时间,终于赶上最近新购买了阿里云,决定使用CentOS去试试.NET Core等相关的开发,于是决定好好的回顾下这部分知识,由于Mysql的数据库引擎是插件式的,对 ...

  9. JSP开发环境配置问题解答

    有过JSP开发经验的同学对于JSP开发环境的配置一定非常的很有感触,十分的繁琐,有时因为一个小的问题导致我们配置的配置前功尽弃,本篇我将重点带领大家一起探讨一下关于JSP环境配置的一些常见问题,及解决 ...

  10. JAVA设计模式《三》

    上一篇为大家介绍了一下关于模板方法模式的实现,后来我发现里面有一点小瑕疵,本篇重新为大家介绍一下关于模板方法模式的实现.另外为大家分享一下关于策略模式的实现. 一.模板方法模式: 对于上一篇为大家介绍 ...