当前位置:  开发笔记 > 编程语言 > 正文

针对MS Access的LINQ asp.net页面.

如何解决《针对MSAccess的LINQasp.net页面.》经验,为你挑选了1个好方法。

我有一个ASP.Net页面使用ADO来查询MS访问数据库,作为一个学习练习我想要合并LINQ.我有一个名为Quotes的简单表.

字段是:QuoteID,QuoteDescription,QuoteAuthor,QuoteDate.我想运行简单的查询,例如"1995年以后给我所有引号".

我如何将LINQ合并到这个ASP.Net站点(C#)

基本上,我的问题是LINQ是否适用于MS Access?



1> Ryan Lundy..:

LINQ to SQL不支持Access(即LINQ没有Access/Jet提供程序),但您可以使用LINQ查询DataSet.这意味着您使用数据库中可能需要的任何可能数据填充DataSet,然后在客户端进行筛选.有了一个类型化的DataSet,然后用TableAdapter填充()它,你可以这样做:

var year = 1995;  // you can pass the year into a method so you can filter on any year
var results = from row in dsQuotes
              where row.QuoteDate > year
              select row;

你必须决定这是否值得.你必须使用所有引号填充你的DataSet ,然后使用LINQ来过滤那些1995之后的引号.对于少量数据,当然,为什么不呢?但是对于非常大量的数据,您需要确保它不会太慢.

但是,如果您正在使用DataSet,则可以编写成为新的TableAdapter方法的自定义查询.因此,您可以在TableAdapter中的FillByYear()方法中为查询添加正确的SQL,并使用它来填充您键入的DataTable.这样你就只能获得所需的数据.

如果你走这条路线,请记住Access/Jet使用位置参数,而不是命名参数.而不是

SELECT * FROM Quotes WHERE Year(QuoteDate) > @Year

你会用这样的东西:

SELECT * FROM Quotes WHERE Year(QuoteDate) > ?

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有