【发布时间】:2013-12-11 04:59:14
【问题描述】:
我正在访问一个小型 Access 数据库并将一些表放入数据集中。然后,我需要使用 LINQ 查询这些表。我对 LINQ 很陌生,我不明白以下代码有什么问题:
DataTable cours = autOuvrDS.Tables["cours"];
DataTable etudiants = autOuvrDS.Tables["etudiants"];
DataTable resultats = autOuvrDS.Tables["resultats"];
IEnumerable<DataRow> query = from etudiant in etudiants.AsEnumerable()
join resultat in resultats.AsEnumerable()
on etudiant.Field<string>("matricule") equals resultat.Field<string>("matricule")
join cour in cours.AsEnumerable()
on resultat.Field<string>("sigle") equals cour.Field<string>("sigle")
select etudiant;
DataTable table = query.CopyToDataTable<DataRow>();
然后我循环遍历每一行以打印数据:
foreach (DataRow row in table.Rows)
{
Console.WriteLine(
row.Field<string>("Prenom") + "\t\t" +
row.Field<string>("Nom") + "\t\t" +
row.Field<string>("Sigle") + "\t\t" + /// PROGRAM CRASH HERE
row.Field<string>("Cours") + "\t\t"
);
}
当我执行程序时出现以下错误:“附加信息:列'Sigle'不属于表。”
“Sigle”列是“cours”表的一部分,我已将其与查询连接起来,因此我认为查询会从连接的表中选择列,但似乎并非如此。 . 那么如何从其他表中选择列呢??
【问题讨论】:
-
只需将 berakpoint 放在 PROGRAM CRASH HERE 并检查您是否使用错误的列名访问或可能转换为错误的数据类型。
标签: c# linq visual-studio datatable