Silverlight學習(四) domainservice動態多條件查詢
阿新 • • 發佈:2022-04-29
上次講了silverlight+MVVN+EF的簡單框架,能夠實現簡單的資料CURD,但是多條件動態的查詢一直沒有實現。在網上查閱了很多資料,發現自己走了很多誤區,程式碼很難除錯正確。
這次的查詢是基於上次的查詢,只是增加了一個查詢條件,動態多條件的查詢的重點是獲取查詢的語言。
1 private string GetSql() 2 { 3 string query = "1=1"; 4 if (!string.IsNullOrEmpty(searchText.name)) 5 { 6 query += string.Format(" and it.name like '%{0}%'",searchText.name); 7 8 } 9 else if (!string.IsNullOrEmpty(searchText.age)) 10 { 11 query += string.Format("and it.age like '%{0}%'",searchText.age); 12 } 13 return query; 14 }
這裡動態獲取查詢語言,網上有多程式碼,我都沒有除錯通過,尤其是it.name.Contains(),不知道是為什麼這樣寫總是出錯,只有變換的通過it.name like ‘%%’ 這樣的語句實現了。
查詢的按鈕依然是通過繫結事件命令實現的。
1 public ICommand OnSearch { get; set; } 2 public void SearchData(object obj) 3 { 4 //searchText = obj.ToString(); 5 UserList= GetQueryList(); 6 7 }
前臺的xaml語言依舊是MVVM設計模式,這裡的兩個textbox均繫結後臺的屬性。
1 <TextBox Text="{Binding UserInfo.age,Mode=TwoWay}" Width="100" HorizontalAlignment="Left" x:Name="txtage" Height="30"></TextBox> 2 <TextBox Text="{Binding UserInfo.name,Mode=TwoWay}" Width="100" Margin="105,0,195,0" x:Name="txtname" Height="30"></TextBox>