当前位置:编程学习 > C#/ASP.NET >>

OLEDB 读取excel 时,碰到的select语句问题

1.OLEDB读取excel数据(前提)
2.使用select查询(为了方便查看,调整了下格式)
查询语句:sqlTest="select * from [sheet1&] where
                                          [列1] like '%a1%' or
                                          [列1] like '%a2%' or
                                          [列1] like '%a3%' or
                                          [列1] like '%a4%' or
                                          [列1] like '%a5%' or
                                          [列1] like '%a6%' or
                                          ...
                                                                                                                                [列1] like '%an%' ";
问题:
 1.如果按这种方式写,当or条件过多时,就会引起“查询条件过于复杂”的错误,尝试了下,大概支持60多的样子(参考)
 2.为了避免“查询过于复杂错误”,对查询条件进行了处理,使用了union连接多个查询字句(每个字句where条件限制在60左右),就目前程序运行来看,解决了问题. 但客观上分析,如果 or like 条件的数量增加到一定值,可能还会出现问题.(受sql语句长度限制吧,?)
 3.再思考,希望能找到其他办法:将like后面的关键词存到内存表dataTable中, 如果dataTable能和Access表做 连接查询 ,那问题就能迎刃而解. 但是,dataTable怎么和数据表连接呢?好像行不通.
  本次查询的筛选条件不止是like ,还包含(=,<>,in,not in ,exist,not exist等等)


期待各位老师的答案,纯技术交流,别来灌水,谢谢!



--------------------编程问答-------------------- 把a1,a2,a3,....放到一个临时表或变量表中,通过数据表与临时表关联查询,可以避免写很长的查询语句
--------------------编程问答-------------------- EXCEL最多10万行吧? 没索引吧?

那就一行行先读出来,再判断它的数据。
自己优化的话,效率应能更好。 --------------------编程问答--------------------
引用 2 楼 rtdb 的回复:
EXCEL最多10万行吧? 没索引吧?

那就一行行先读出来,再判断它的数据。
自己优化的话,效率应能更好。


Excel 2007就已经100多万行了。 --------------------编程问答-------------------- 超过10万行还不进数据库?对微软太有信心了吧? --------------------编程问答-------------------- 谢谢各位的作答。

引用 1 楼 hdhai9451 的回复:
把a1,a2,a3,....放到一个临时表或变量表中,通过数据表与临时表关联查询,可以避免写很长的查询语句


我也希望用临时表做关联查询,所以第二条问了,dataTable能作为这个临时表吗,用于[sheet1&]作连接查询?

关于excel能处理多大数据的问题,大家不用争论了,不管是10W条,还是100W条,只要有需求,都得去实现。
而且微软已经明确在excel2013中回归大数据了吧.


期待各位的解决方案,谢谢! --------------------编程问答-------------------- 只要有需求,都得去实现。

呵呵,这话没错,不过怎么实现就不能听用户的了。

你的这个问题,如果是数据库的话,轻松完成,
如果数据量不太大的话,就全读上来好了。

如果数据量很大的话,尽早往数据库上转移才是。

至于“微软已经明确在excel2013中回归大数据”, 后面恐怕少了“的客户端”几个字 --------------------编程问答-------------------- 在线等待答案 --------------------编程问答-------------------- 向斑竹求助! --------------------编程问答-------------------- 不能沉下去啊,  怎么优化这样的查询语句?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,