gpt4 book ai didi

c# - 通过linq填充数据表

转载 作者:行者123 更新时间:2023-11-28 23:47:46 27 4
gpt4 key购买 nike

我是 linq 的新手,正在尝试理解它。我试图通过 linq 填充数据表,但在 sql 命令适配器中出现错误。下面是我正在使用的代码,不知道我是否以正确的方式使用它!

这是我遇到的错误:

Error 7 Cannot implicitly convert type 'System.Linq.IQueryable' to MySql.Data.MySqlClient.MySqlCommand'

{
northwindEntities1 nw = new northwindEntities1();
var query = from c in nw.customers
join o in nw.orders on c.CustomerID equals o.CustomerID // first join
join od in nw.orderdetails on o.OrderID equals od.OrderID // second join
join p in nw.products on od.ProductID equals p.ProductID // third join
where c.ContactName.StartsWith("Maria Anders")
select new {
o.CustomerID,
c.ContactName,
o.OrderID,
p.ProductID,
p.ProductName,
od.Quantity,
p.UnitPrice
};
MySqlDataAdapter da = new MySqlDataAdapter();
da.SelectCommand = query;
DataTable datatable = new DataTable();
da.Fill(datatable); // getting value according to imageID and fill dataset

ReportDocument crystalReport = new ReportDocument(); // creating object of crystal report
crystalReport.Load(Server.MapPath("~/custreport.rpt")); // path of report
crystalReport.SetDataSource(datatable); // binding datatable
CrystalReportViewer1.ReportSource = crystalReport;

crystalReport.ExportToHttpResponse
(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "PersonDetails");
}

最佳答案

SQL 查询与 LINQ 不同查询,它们是完全不同的。

LINQ 本身是一组用于查询不同数据源的查询语言功能,但它与 SQL 查询不同。你想念那个。所以你不能传递它来充当 SQL 查询。

您不能将来自变量 linqSystem.Linq.IQueryable 传递给 MysqLCommand CommandText Property ,您应该传递一个字符串,该字符串应该是 MysQL 查询而不是 LinQ 查询。像这样:

    string query = "Select * FROM Customers INNER JOIN ..."; //you have to pass sql query
MySqlDataAdapter da = new MySqlDataAdapter();
da.SelectCommand = query;
...

关于c# - 通过linq填充数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com