在silverlight中,数据的展示和操作有很多种方式,这里只介绍简单的方法,以达到让初学者有一个概念性的理解和认识,如果你对更高层次的应用有兴趣可以到本站论坛http://funsl.eblhost.cn/drupal/forum进行讨论。
1.silverlight项目中的命名空间引用,请对下照下图引用相应命名空间:
2.以下是MainPage.xaml的内容:
1: <UserControl
2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5: mc:Ignorable="d" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="funsl.com.MainPage"
6: d:DesignWidth="640" d:DesignHeight="480">
7: <Grid x:Name="LayoutRoot">
8: <data:DataGrid x:Name="GirdView1" Margin="116,88,236,193"/>
9: <Button x:Name="bt_add" Height="31" HorizontalAlignment="Left" Margin="60,0,0,109" VerticalAlignment="Bottom" Width="118" Content="添加"/>
10: <Button x:Name="bt_edit" Height="31" Margin="214,0,308,109" VerticalAlignment="Bottom" Content="修改"/>
11: <Button x:Name="bt_del" Height="31" HorizontalAlignment="Right" Margin="0,0,151,109" VerticalAlignment="Bottom" Width="118" Content="删除"/>
12: </Grid>
13: </UserControl>
定义了一个Gridview控件用来显示数据,三个按扭控件分别是添加、修改、删除。
3.以下是MainPage.xaml.cs文件代码部份。也就是我们开始通过.net ria service操作数据库了。
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Net;
5: using System.Windows;
6: using System.Windows.Controls;
7: using System.Windows.Documents;
8: using System.Windows.Input;
9: using System.Windows.Media;
10: using System.Windows.Media.Animation;
11: using System.Windows.Shapes;
12: //引用funsl.com.web空间
13: using funsl.com.Web;
14: 15: namespace funsl.com
16: {17: public partial class MainPage : UserControl
18: {
19: //定义一个Domain Data Class,即是我们之有在funsl.com.Web里定义的那个
20: FunSLDomainContext funSLContext;
21: 22: public MainPage()
23: {24: InitializeComponent();25: 26: //实例化FunSLDomainContext
27: funSLContext = new FunSLDomainContext();
28: 29: LoadDataAndDisplay();30: 31: //注册添加功能的button点击事件
32: bt_add.Click += new RoutedEventHandler(bt_add_Click);
33: //注册修改功能的button点击事件
34: bt_edit.Click += new RoutedEventHandler(bt_edit_Click);
35: //注册删除功能的button点击事情
36: bt_del.Click += new RoutedEventHandler(bt_del_Click);
37: 38: }39: 40: //此方法为显示所有数据
41: void LoadDataAndDisplay()
42: {43: //把gridview控件的数据源与DomainContext绑定
44: GirdView1.ItemsSource = funSLContext.FunSLUsers;
45: //开始开载数据
46: funSLContext.Load(funSLContext.GetFunSLUsersQuery());
47: }48: 49: //添加工作
50: void bt_add_Click(object sender, RoutedEventArgs e)
51: {52: //新建一个FunSLUsers并设定相关值,不同的资料请自行修改
53: FunSLUsers newUser = new FunSLUsers();
54: newUser.userId = "FunSl.User";
55: newUser.age = 25;56: newUser.address = "HK";
57: 58: //把新的FunSLUsers添加到DomainContext中
59: funSLContext.FunSLUsers.Add(newUser);
60: //把DomainContext的变动更新到数据库
61: funSLContext.SubmitChanges();
62: 63: //提示
64: MessageBox.Show("提交完成");
65: }66: 67: //修改工作
68: void bt_edit_Click(object sender, RoutedEventArgs e)
69: {70: //重选中的dataview中还原FunSlUsers实例
71: FunSLUsers user = (FunSLUsers)GirdView1.SelectedItem;
72: 73: //这里我要修改选中用户的userId为eidted
74: user.userId = "edited";
75: 76: //把修改变动更新到数据库
77: funSLContext.SubmitChanges();
78: 79: //提示
80: MessageBox.Show("修改完成");
81: }82: 83: //删除工作
84: void bt_del_Click(object sender, RoutedEventArgs e)
85: {86: //重选中的dataview中还原FunSlUsers实例
87: FunSLUsers user = (FunSLUsers)GirdView1.SelectedItem;
88: 89: //从DomainContext中移除user
90: funSLContext.FunSLUsers.Remove(user);
91: 92: //把修改变动更新到数据库
93: funSLContext.SubmitChanges();
94: }95: }96: }到此基本的应用已经完成,须然还有很我.net ria service的特性没有讲述,监于本系列是专为初学者入门而写,所以不想作更多复杂的讲述,希望本系列文章可以为.net ria serivce入门的朋友有所帮助。
登陆后可直接下从附件中下载源码
欢迎您参与更多关于此话题的讨论,本文原创地址为:http://funsl.com
评论
你好,关于多表操作的问题,现有2个表是1对1的关系
Users:UserName,Password
Persons:UserName,PersonID,PersonName
在前端界面我怎样用一个dataform同显示2个表字段:UserName,Password,PersonID,PersonName 就是2个动作:首先从2个表拿出数据绑定到界面,然后修改后保存。老大我应该怎样实现它呢?
查查datafrom的detail之类的属性。我记得datagrid是有的。不过dataform有没有我忘记了。太久没有玩数据库了。
错误 1 未能从程序集“System.Web.DomainServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”中加载类型“System.Web.Ria.Data.ExternalAttribute”。 funsl.com
是怎么回事?
可能你的wcf ria services版本不相配。假如你换了更新的silverlight版本,请按相应的程序集引用添加上。
RiaService 版本号为:{640349A7-E635-4A74-ABD5-3B2A94F1C6CC};
刚开始我也估计是版本问题 我是昨天才在微软下的RiaService补丁,大小为:4.02Mb
主要还是dll的问题,你要确认错误提示的dll被正常引用,或确定已经引用到项目中,或版本必须相符。这种错误提示一般都是因为这些原因。由于我已经很久没用vs08,这种和编译环境有关的错误给不了你太多好的建议,不好意思!
12: //引用funsl.com.web空间
13: using funsl.com.Web;
這個引用是如何加進去的...
偶的環境是Silverlight 3 + Vs2008
有裝.NetRiaServices
能說一下嘛?
1.首先确定你新建项目时选择了启用ria services.
2.如果那个引用没有自动加进去,请手动添加。funsl.com是web项目的主命名空间。你可以改为你自己项目的实际web项目的主命名空间。
謝謝你的回覆...
>>1.首先确定你新建项目时选择了启用ria services.
應該是我在新建項目時沒有把啟用ria services的勾給打上...
那我如何在已經建好的項目里修改這一個設置呢? 謝謝
除非你没有安装wcf ria services。如果安装了,在新建项目的时候有一个对话框,对话框的下方就有一个“启动ria server "的checkbox,你钩上就行了。
表"t_dict_hydm_xl"
Xlcode XlName
01 油料的种植
02 豆类的种植
03 棉花的种植
04 麻类的种植
05 烟草的种植
... ....
请问如何查到Xlcode为“04”的那条记录的实体?小弟初学,请给出完速的代码,谢谢