silverlight 通过WCF与LinQ对数据库进行操作2

    本文主要演示了在silverlight中如何通过WCF和LinQ语句对数据库进行简单操作,这是第二部分,第一部分为:silverlight 通过WCF与LinQ对数据库进行操作1

接下来在MainPage中再拖一个button控件命名为btnDelete,用于触发删除事件。在Service1.svc中加入删除方法:

 public void Delete(string pName)
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();
            var per = from s in dc.person where s.name == pName select s;
            if (per != null)
            {
                dc.person.DeleteAllOnSubmit(per);
                dc.SubmitChanges();
            }
        }

    双击删除按钮,进入后台,输入代码:

 private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            string name = textBox1.Text;
            proxy.DeleteAsync(name);
        }

    调用该方法后会删除表中所有name值与textbox1中输入的文本名称相同的数据。

    同理,修改数据的代码为:

public void Update(string pName, int pAge)
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();
            var per = from s in dc.person where s.name == pName select s;
            foreach (person p in per)
            {
                p.age = pAge;
            }
            dc.SubmitChanges();
        }

 

private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            string name = textBox1.Text;
            int age = Convert.ToInt32(textBox2.Text);
            proxy.UpdateAsync(name, age);
        }

    在文本框中分别输入名称和年龄,会将数据库中相同名称的记录的年龄改为输入的年龄。

    现在在MainPage中拖入一个DateGrid用于显示数据库中的数据:

<sdk:DataGrid AutoGenerateColumns="False" Height="225" HorizontalAlignment="Left" Margin="284,39,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="282" >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Header="ID" Binding="{Binding id}" Width="60"></sdk:DataGridTextColumn>
                <sdk:DataGridTextColumn Header="姓名" Binding="{Binding name}" Width="80"></sdk:DataGridTextColumn>
                <sdk:DataGridTextColumn Header="年龄" Binding="{Binding age}" Width="85"></sdk:DataGridTextColumn>
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>

    Service1.svc中通过查询语句返回表中记录集合:

public List<person> GetData()
        {
            List<person> list = new List<person>();
            DataClasses1DataContext dc = new DataClasses1DataContext();
            var query = from p in dc.person
                        select p;
            return query.ToList<person>();
        }

    客户端通过Completed方法得到集合,并赋给dataGrid1.ItemSource:

  void proxy_GetDataCompleted(object sender, ServiceReference1.GetDataCompletedEventArgs e)
        {
            dataGrid1.ItemsSource = e.Result;
        }

现在就可以对数据库中的数据进行简单的增删改查了,最后效果图如下:

最后代码为:https://files.cnblogs.com/infly123/SilverlightApplication8f.rar

 

posted @ 2013-05-29 20:39  Infly  阅读(175)  评论(0编辑  收藏  举报