2012-04-29 66 views
0

我是新来的水晶报告,并希望使用linq2sql在水晶报告上显示sql数据。到目前为止,我只是试图显示一个领域(tripNo),没有运气。我的错误是数据源对象无效。这是我的代码。简单的linq2sql查询显示在水晶报告中

private void runstuff() 
    { 
     using (DataClasses1DataContext db = new DataClasses1DataContext()) 
     { 
      var test = (from s in db.trips 
         select s.tripNo).First(); 

      CrystalReport1 cr1 = new CrystalReport1(); 
      cr1.SetDataSource(test); 
      crystalReportViewer1.ReportSource = cr1; 
     } 
    } 
+0

贵'CrystalReport1'真的只有一个在它的字段名'tripNo' App.config文件? – 2012-05-01 18:21:04

+0

是的,现在只是一个领域,尽可能简单。 – 2012-05-01 22:16:07

回答

0

需要这条线

<startup useLegacyV2RuntimeActivationPolicy="true"> 
1

自从我使用Crystal以来已经有一段时间了。但是,问题似乎是'测试'的类型。 Crystal可能不知道该怎么做。你可能想试试这个。请注意,我删除了First()方法,以便返回行列表,然后将其转换为实体列表。水晶应该能够处理这一点。

var test = (from s in db.trips 
      select s.tripNo).ToList(); 

      CrystalReport1 cr1 = new CrystalReport1(); 
      cr1.SetDataSource(test); 

希望这会有所帮助。

+0

这不会编译,但我试着改变).single()l to).ToList();现在我得到列不属于表旅行 – 2012-04-29 00:45:11

+1

尝试我刚刚做出的改变。 – 2012-04-29 00:45:48

+0

仍然得到列''不属于表旅行。我可以在实际的报表查看器控件上丢失一些东西吗? – 2012-04-29 00:47:33