Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 针对MS Access的LINQ asp.net页面。_C#_Asp.net_Linq_Ms Access - Fatal编程技术网

C# 针对MS Access的LINQ asp.net页面。

C# 针对MS Access的LINQ asp.net页面。,c#,asp.net,linq,ms-access,C#,Asp.net,Linq,Ms Access,我有一个ASP.Net页面,使用ADO查询MS access数据库,作为学习练习,我想加入LINQ。我有一个简单的表叫Quotes 字段为:QuoteID、QuoteDescription、QuoteAuthor、QuoteDate。我想运行一些简单的查询,比如“在1995年之后给我所有的报价” 如何将LINQ整合到这个ASP.Net站点(C#) 基本上,我的问题是LINQ是否适用于MS Access???我认为LINQ to SQL不支持Access。但是,如果您的表足够小,可以放入内存,那么

我有一个ASP.Net页面,使用ADO查询MS access数据库,作为学习练习,我想加入LINQ。我有一个简单的表叫Quotes

字段为:QuoteID、QuoteDescription、QuoteAuthor、QuoteDate。我想运行一些简单的查询,比如“在1995年之后给我所有的报价”

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


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

我认为LINQ to SQL不支持Access。但是,如果您的表足够小,可以放入内存,那么LINQ to DATASE可以让您非常轻松地查询数据表等,尤其是强类型数据集。

LINQ to SQL不支持访问(也就是说,LINQ没有访问/Jet提供程序),但您可以使用LINQ查询数据集。这意味着您可以使用数据库中可能需要的任何数据填充数据集,然后在客户端进行筛选。在获得类型化数据集并用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;
SELECT * FROM Quotes WHERE Year(QuoteDate) > ?
你必须决定这是否值得。您必须用所有引号填充数据集,然后使用LINQ过滤1995年之后的引号。对于少量的数据,当然,为什么不呢?但是对于非常大的数据量,您需要确保它不会太慢

但是,如果您使用的是数据集,则可以编写成为新TableAdapter方法的自定义查询。因此,您可以将查询的正确SQL放入TableAdapter中的FillByYear()方法中,并使用该方法填充类型化数据表。这样一来,你只会得到你需要的数据

如果您选择此路线,请记住Access/Jet使用的是位置参数,而不是命名参数。所以不是

SELECT * FROM Quotes WHERE Year(QuoteDate) > @Year
您可以使用如下内容:

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;
SELECT * FROM Quotes WHERE Year(QuoteDate) > ?

您能解释一下LINQ to DataSet是什么意思吗。现在在我的查询中,我查询一个datatableLINQ to DataSet基本上是DataSet和DataTable上的一组扩展方法。其思想是能够对已经从数据库中获取的数据执行查询。有关更多信息,请参阅。你们不是指“访问”——你们是指JET。请参阅我的答案,在Windows窗体上使用VB.net