2011-04-15 234 views
0

我目前正在開發的C#WPF項目的字符串。該項目接受一個字符串(newMemoryRFID),該字符串在頁面初始化並在查詢中使用時定義。像這樣使用LINQ查詢

var query = 
      from c in MemoryData.Memory 
        where c.RFID == newMemoryRFID 
        select c; 
     this.DataContext = query; 
     this.View = ((CollectionView)(CollectionViewSource.GetDefaultView(this.DataContext))); 

,當我使用的測試數據是一樣什麼newMemoryRFID將查詢即

var query = 
      from c in MemoryData.Memory 
        where c.RFID == "0F02D76B05" 
        select c; 
     this.DataContext = query; 
     this.View = ((CollectionView)(CollectionViewSource.GetDefaultView(this.DataContext))); 

查詢得到正確的記錄這將產生一個空的DataContext

不過。正如你可能會說我不是最好的程序員,所以你的答案越簡單越好。而在此先感謝

+1

如果它的工作原理,當你硬編碼newMemoryRFID字符串,那麼問題已經同睡newMemoryRFID。執行前在代碼中放置一個斷點。然後檢查'newMemoryRFID'的值。有機會可能會有一些白色空間或在那裏。 – tobias86 2011-04-15 09:22:51

回答

3

非常這就是用你的調試時間。這聽起來像newMemoryRFID不是在創建該查詢的時間設定爲「0F02D76B05」。

如果你不能踏進去,至少線路

var query = ... 
+0

我希望它是,但我已經按照從開始newMemoryRFID完成,從我可以告訴它什麼我期待相匹配,即\t \t newMemoryRFID \t「\ n0F02D76B05 \ R」 \t串 – 2011-04-15 09:47:20

+0

你期待newMemoryRFID包括\ n和\ r?這看起來像你有額外的字符。嘗試使用newMemoryRFID.Trim()。 – 2011-04-15 09:50:42

+0

我沒想到他們,但我一直在使用.Trim(嘗試),它並沒有幫助:( – 2011-04-15 10:03:24

0

嘗試微調字符串都在開頭和結尾的空白可能這將失敗前做

Debug.WriteLine(string.Format("newMemoryRFID = {0}", newMemoryRFID); 

字符串匹配。