Silverlight学习(四) domainservice动态多条件查询

时间:2022-04-29
本文章向大家介绍Silverlight学习(四) domainservice动态多条件查询,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

上次讲了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>