2011-12-05 19 views
2

我遇到了C#表单应用程序的问题。我正在连接到一个.mdf数据库,并试图查询一个名为SpotLanding的列,它是一个布尔值,然后计算出真实的数字。它位于LogbookDatabase.mdf中,位于表格EnterTable中。这是我到目前为止:Linq到C#表单应用程序与.mdf数据库中的sql问题

private void SpotLandingButton_Click(object sender, EventArgs e) 
    { 

     DataContext db = new DataContext(@"C:\LogbookDatabase.mdf"); 
     Table<EnterTable> entrytable = db.GetTable<EnterTable>(); 
     var spot = (from SpotLanding in entrytable 
        where SpotLanding = true 
        select SpotLanding).Count; 

     return spot; 
    } 

这是它给我的错误;

不能 'BOOL' 类型隐式转换为 'ParagliderLogBook.EnterTable'

任何信息任何人都可以提供将是巨大的。我尝试了很多不同的方法来完成这个,并提出相同的错误。

+1

说不上来,如果这是唯一的问题,但你要分配,不比较“=真”应为“==真” –

回答

1

您需要访问对象的SpotLanding成员(其中的方式,应该也被称为SpotLanding因为这只是混淆)。

你也可以多写你的查询更简明使用the overload of Count that takes a predicate

int spot = entrytable.Count(x => x.SpotLanding); 
+1

更好的是,'entryTable.Count(x => x.SpotLanding)'。 – Jacob

+0

@Jacob:谢谢,是的,你说得对...那好多了!更新。 –

1
where SpotLanding = true 

你要指定一个布尔值,而不是比较它。

where SpotLanding == true 
1

您需要使用==操作符代替=

var spot = (from SpotLanding in entrytable 
       where SpotLanding == true 
       select SpotLanding).Count; 
相关问题