silverlight数据库应用程序开发
该解决方案使用的是"silverlight导航应用程序+Oracle数据库+WebService服务”
新建silverlight项目GH,同时会自动添加一个GH.Web,在GH.Web中添加"web 服务",同时需要添加两个XML文件用于解决跨域问题:
第一个XML文件:clientaccesspolicy.xml:
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
第二个XML文件:crossdomain.xml:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
在GH中添加一个文件夹:Model,用于存放实体类,然后添加"服务引用":GH_ServiceReference
web服务代码:
2 [WebMethod]
3 public string getUsers()
4 {
5 try
6 {
7 OracleConnection orclConn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
8 orclConn.Open();
9 OracleDataAdapter orclAdapter = new OracleDataAdapter("select U.ID,U.XM,U.SSBMMC,ZD.MS,R.JSMC from SYS_USER U,SYS_ZD ZD,SYS_ROLE R WHERE U.SSQY=ZD.ID AND U.ROLEDM=R.ID AND ZD.LXID=1 order by U.ID ", orclConn);
10 DataSet ds = new DataSet();
11 orclAdapter.Fill(ds);
12
13 int num = 1;
14 StringBuilder builder = new StringBuilder();
15 builder.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
16 builder.Append("<UserInfo>");
17 foreach (DataRow row in ds.Tables[0].Rows)
18 {
19 builder.Append("<user>");
20 builder.Append("<number>");
21 builder.Append(num.ToString());
22 builder.Append("</number>");
23 builder.Append("<userID>");
24 builder.Append(row[0].ToString());
25 builder.Append("</userID>");
26 builder.Append("<userName>");
27 builder.Append(row[1].ToString());
28 builder.Append("</userName>");
29 builder.Append("<userDep>");
30 builder.Append(row[2].ToString());
31 builder.Append("</userDep>");
32 builder.Append("<userArea>");
33 builder.Append(row[3].ToString());
34 builder.Append("</userArea>");
35 builder.Append("<userRole>");
36 builder.Append(row[4].ToString());
37 builder.Append("</userRole>");
38 builder.Append("</user>");
39 num++;
40 }
41 builder.Append("</UserInfo>");
42 orclConn.Close();
43 return builder.ToString();
44 }
45 catch (Exception ex)
46 {
47 return string.Empty;
48 }
49 }
50 //删除用户
51 [WebMethod]
52 public int DelUser(int uID)
53 {
54 string sql = "delete from SYS_USER where ID="+uID.ToString();
55 return OperaData(sql);
56 }
57
58
59 [WebMethod]
60 public int InsertUser(string uName,string dep,string areaid,string roleid)
61 {
62 string sql = "insert into SYS_USER(XM,SSBMMC,SSQY,ROLEDM) values('" + uName + "','" + dep + "','" + areaid + "','" + roleid + "')";
63 return OperaData(sql);
64 }
65 [WebMethod]
66 public int UptUser(string s)
67 {
68 string [] val=s.Split('|');
69 string sql = "update SYS_USER set SSBMMC='" + val[0] + "',SSQY='" + val[1] + "',ROLEDM='" + val[2] + "' where ID='" + val[3] + "'";
70 return OperaData(sql);
71 }
72
73 /// <summary>
74 /// 增、删、改
75 /// </summary>
76 /// <param name="sql"></param>
77 /// <returns></returns>
78 private int OperaData(string sql)
79 {
80 OracleConnection orclConn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
81 orclConn.Open();
82 OracleCommand orclCmd = new OracleCommand(sql, orclConn);
83 int result = orclCmd.ExecuteNonQuery();
84 orclConn.Close();
85 return result;
86 }
87
88
89 /// <summary>
90 /// 获取所属区域
91 /// </summary>
92 [WebMethod]
93 public string GetArea()
94 {
95 try
96 {
97 OracleConnection orclConn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
98 orclConn.Open();
99 OracleDataAdapter orclAdapter = new OracleDataAdapter("select ZD.ID,ZD.MS from SYS_ZD ZD WHERE ZD.LXID=1", orclConn);
100 DataSet ds = new DataSet();
101 orclAdapter.Fill(ds);
102
103 StringBuilder builder = new StringBuilder();
104 builder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
105 builder.Append("<areaInfo>");
106 foreach (DataRow row in ds.Tables[0].Rows)
107 {
108 builder.Append("<area>");
109 builder.Append("<id>");
110 builder.Append(row[0].ToString());
111 builder.Append("</id>");
112 builder.Append("<ms>");
113 builder.Append(row[1].ToString());
114 builder.Append("</ms>");
115 builder.Append("</area>");
116 }
117 builder.Append("</areaInfo>");
118 orclConn.Close();
119 return builder.ToString();
120 }
121 catch (Exception e)
122 {
123 return string.Empty;
124 }
125 }
126
127 /// <summary>
128 /// 获取角色
129 /// </summary>
130 [WebMethod]
131 public string GetRole()
132 {
133 try
134 {
135 OracleConnection orclConn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
136 orclConn.Open();
137 OracleDataAdapter orclAdapter = new OracleDataAdapter("select ROLE.ID,ROLE.JSMC from SYS_ROLE ROLE", orclConn);
138 DataSet ds = new DataSet();
139 orclAdapter.Fill(ds);
140
141 StringBuilder builder = new StringBuilder();
142 builder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
143 builder.Append("<roleInfo>");
144 foreach (DataRow row in ds.Tables[0].Rows)
145 {
146 builder.Append("<role>");
147 builder.Append("<id>");
148 builder.Append(row[0].ToString());
149 builder.Append("</id>");
150 builder.Append("<roleName>");
151 builder.Append(row[1].ToString());
152 builder.Append("</roleName>");
153 builder.Append("</role>");
154 }
155 builder.Append("</roleInfo>");
156 orclConn.Close();
157 return builder.ToString();
158 }
159 catch (Exception e)
160 {
161 return string.Empty;
162 }
163 }
164 #endregion
主页面视图:
主页面xmal代码:
2 {
3 GH_ServiceReference.GH_serviceSoapClient client = new GH.GH_ServiceReference.GH_serviceSoapClient();
4 public GH_User()
5 {
6 InitializeComponent();
7 GH_ServiceReference.GH_serviceSoapClient client = new GH.GH_ServiceReference.GH_serviceSoapClient();
8 client.getUsersCompleted += new EventHandler<GH.GH_ServiceReference.getUsersCompletedEventArgs>(OnGetUsersCompleted);
9 client.getUsersAsync();
10 }
11
12 /// <summary>
13 /// 获取用户信息
14 /// </summary>
15 private void OnGetUsersCompleted(object sender, GH.GH_ServiceReference.getUsersCompletedEventArgs e)
16 {
17 if (e.Error != null)
18 {
19 return;
20 }
21 XmlReader reader = XmlReader.Create(new StringReader(e.Result.ToString()));
22 XDocument doc = XDocument.Load(reader);
23 var info = from items in doc.Descendants("user")
24 select new gh_UserModel()
25 {
26 Num = (int)items.Element("number"),
27 ID = (string)items.Element("userID"),
28 Name = (string)items.Element("userName"),
29 DepName = (string)items.Element("userDep"),
30 Area = (string)items.Element("userArea"),
31 RoleID = (string)items.Element("userRole")
32 };
33 //分页
34 PagedCollectionView view = new PagedCollectionView(info.ToList());
35 dataGrid1.ItemsSource = view;
36 dataPager1.Source = view;
37 dataPager1.PageSize = 5;
38 }
39
40 //删除用户
41 private void bt_del_Click(object sender, RoutedEventArgs e)
42 {
43 client.DelUserCompleted += new EventHandler<GH_ServiceReference.DelUserCompletedEventArgs>(client_DelUserCompleted);
44 client.DelUserAsync(Convert.ToInt32((sender as Button).Tag.ToString()));
45 }
46 void client_DelUserCompleted(object sender, GH_ServiceReference.DelUserCompletedEventArgs e)
47 {
48 if (e.Error == null)
49 {
50 MessageBox.Show("删除成功!");
51 //重新绑定
52 client.getUsersCompleted += new EventHandler<GH_ServiceReference.getUsersCompletedEventArgs>(OnGetUsersCompleted);
53 client.getUsersAsync();
54 }
55 else
56 {
57 MessageBox.Show(e.Error.ToString());
58 }
59 }
60
61 private void Page_Loaded(object sender, RoutedEventArgs e)
62 {
63 client.GetAreaCompleted += new EventHandler<GH_ServiceReference.GetAreaCompletedEventArgs>(client_GetAreaCompleted);
64 client.GetAreaAsync();
65 client.GetRoleCompleted += new EventHandler<GH_ServiceReference.GetRoleCompletedEventArgs>(client_GetRoleCompleted);
66 client.GetRoleAsync();
67 }
68
69 void client_GetRoleCompleted(object sender, GH_ServiceReference.GetRoleCompletedEventArgs e)
70 {
71 if (e.Error == null)
72 {
73 XmlReader reader = XmlReader.Create(new StringReader(e.Result.ToString()));
74 XDocument doc = XDocument.Load(reader);
75 var role = from items in doc.Descendants("role")
76 select new gh_RoleModel()
77 {
78 RoleID=(string)items.Element("id"),
79 RoleName = (string)items.Element("roleName")
80 };
81
82 comboBox_role.ItemsSource = role.ToList();
83 comboBox_role.DisplayMemberPath = "RoleName";
84 comboBox_role.UpdateLayout();
85 comboBox_role.SelectedIndex = 0;
86 }
87 }
88
89 void client_GetAreaCompleted(object sender, GH_ServiceReference.GetAreaCompletedEventArgs e)
90 {
91 if (e.Error == null)
92 {
93 XmlReader reader = XmlReader.Create(new StringReader(e.Result.ToString()));
94 XDocument xdoc = XDocument.Load(reader);
95 var area = from items in xdoc.Descendants("area")
96 select new gb_ZDModel()
97 {
98 ID = (string)items.Element("id"),
99 Des = (string)items.Element("ms")
100 };
101 comboBox_area.ItemsSource = area.ToList();
102 comboBox_area.DisplayMemberPath = "Des";
103 comboBox_area.UpdateLayout();
104 comboBox_area.SelectedIndex = 0;
105 }
106 }
107 //保存用户
108 private void btn_Sava_Click(object sender, RoutedEventArgs e)
109 {
110 if (string.IsNullOrEmpty(textBox1.Text))
111 {
112 MessageBox.Show("请输入用户名");
113 return;
114 }
115 if (string.IsNullOrEmpty(textBox2.Text))
116 {
117 MessageBox.Show("请输入所属部门");
118 return;
119 }
120 var areaname = comboBox_area.SelectedItem;
121 string areaid = ((gb_ZDModel)areaname).ID;
122
123 var rolename = comboBox_role.SelectedItem;
124 string roleid = ((gh_RoleModel)rolename).RoleID;
125
126 client.InsertUserCompleted += new EventHandler<GH_ServiceReference.InsertUserCompletedEventArgs>(client_InsertUserCompleted);
127 client.InsertUserAsync(textBox1.Text, textBox2.Text, areaid, roleid);
128 }
129
130 void client_InsertUserCompleted(object sender, GH_ServiceReference.InsertUserCompletedEventArgs e)
131 {
132 if (e.Error == null)
133 {
134 client.getUsersCompleted += new EventHandler<GH_ServiceReference.getUsersCompletedEventArgs>(OnGetUsersCompleted);
135 client.getUsersAsync();
136 MessageBox.Show("用户添加完毕.");
137 textBox1.Text = "";
138 textBox2.Text = "";
139 comboBox_area.SelectedIndex = 0;
140 comboBox_role.SelectedIndex = 0;
141 }
142 else
143 {
144 MessageBox.Show(e.Error.ToString());
145 }
146 }
147
148 gh_User_Child user_child;
149 //修改
150 private void btn_upt_Click(object sender, RoutedEventArgs e)
151 {
152 gh_UserModel row = (gh_UserModel)dataGrid1.SelectedItem;
153
154 user_child = new gh_User_Child(row.ID, row.Name, row.DepName, row.Area, row.RoleID);
155 user_child.Title = "用户信息";
156 user_child.Show();
157 user_child.Closed += new EventHandler(user_child_Closed);
158 }
159
160 void user_child_Closed(object sender, EventArgs e)
161 {
162 if (user_child.DialogResult == true)
163 {
164 string dep = user_child.textBox2.Text;
165 string area = ((gb_ZDModel)user_child.comboBox_area.SelectedItem).ID;
166 string role = ((gh_RoleModel)user_child.comboBox_role.SelectedItem).RoleID;
167 string uID=user_child.OKButton.Tag.ToString();
168 client.UptUserCompleted += new EventHandler<GH_ServiceReference.UptUserCompletedEventArgs>(client_UptUserCompleted);
169 string s = dep +"|"+ area+"|" + role +"|"+ uID;
170 client.UptUserAsync(s);
171 }
172 }
173
174 void client_UptUserCompleted(object sender, GH_ServiceReference.UptUserCompletedEventArgs e)
175 {
176 if (e.Error == null)
177 {
178 MessageBox.Show("更新成功");
179 client.getUsersCompleted += new EventHandler<GH_ServiceReference.getUsersCompletedEventArgs>(OnGetUsersCompleted);
180 client.getUsersAsync();
181 }
182 }
子窗体视图:
子窗体代码:
2 public gh_User_Child()
3 {
4 InitializeComponent();
5 }
6
7 public gh_User_Child(string id, string name, string dep, string area, string role)
8 {
9 InitializeComponent();
10
11 client.GetAreaCompleted += new EventHandler<GH_ServiceReference.GetAreaCompletedEventArgs>(client_GetAreaCompleted);
12 client.GetAreaAsync();
13 client.GetRoleCompleted += new EventHandler<GH_ServiceReference.GetRoleCompletedEventArgs>(client_GetRoleCompleted);
14 client.GetRoleAsync();
15
16 this.OKButton.Tag = id;
17 textBox1.Text = name;
18 textBox2.Text = dep;
19 comboBox_area.SelectedValue = area; //无效
20 comboBox_area.SelectedValue = role;
21 }
22
23 void client_GetRoleCompleted(object sender, GH_ServiceReference.GetRoleCompletedEventArgs e)
24 {
25 if (e.Error == null)
26 {
27 XmlReader reader = XmlReader.Create(new StringReader(e.Result.ToString()));
28 XDocument doc = XDocument.Load(reader);
29 var role = from items in doc.Descendants("role")
30 select new gh_RoleModel()
31 {
32 RoleID = (string)items.Element("id"),
33 RoleName = (string)items.Element("roleName")
34 };
35
36 comboBox_role.ItemsSource = role.ToList();
37 comboBox_role.DisplayMemberPath = "RoleName";
38 comboBox_role.UpdateLayout();
39 comboBox_role.SelectedIndex = 0;
40 }
41 }
42
43 void client_GetAreaCompleted(object sender, GH_ServiceReference.GetAreaCompletedEventArgs e)
44 {
45 if (e.Error == null)
46 {
47 XmlReader reader = XmlReader.Create(new StringReader(e.Result.ToString()));
48 XDocument xdoc = XDocument.Load(reader);
49 var area = from items in xdoc.Descendants("area")
50 select new gb_ZDModel()
51 {
52 ID = (string)items.Element("id"),
53 Des = (string)items.Element("ms")
54 };
55 comboBox_area.ItemsSource = area.ToList();
56 comboBox_area.DisplayMemberPath = "Des";
57 comboBox_area.UpdateLayout();
58 comboBox_area.SelectedIndex = 0;
59 }
60 }
61
62 private void OKButton_Click(object sender, RoutedEventArgs e)
63 {
64 this.DialogResult = true;
65 }
66 private void CancelButton_Click(object sender, RoutedEventArgs e)
67 {
68 this.DialogResult = false;
69 }
转载于:https://www.cnblogs.com/jsping/archive/2012/09/21/2697063.html
silverlight数据库应用程序开发相关推荐
- 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一
数据库应用程序开发基础篇-- .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来 ...
- 存储过程,从新的视角看待数据库应用程序开发(游标,变量,结果集)
存储过程,从新的视角看待数据库应用程序开发(游标,变量,结果集) by ColdZoo 2015年03月26日 通常情况下,在操作数据库里数据的时候,我们会选择一种编程语言(Java,C++, et ...
- 用mysql开发应用程序_一个典型的数据库应用程序开发流程
1 系统总体设计 1.1 应用背景 1.2 项目目标:包括系统登录功能,权限设置,数据录入,信息查询,报表输出,系统维护,退出功能等: 1.3 设计思路:自底向上,首先设计数据结构,然后设计表单.菜单 ...
- oracle应用程序开发,关于Oracle 数据库应用程序开发问题
首先安装oracle数据库的时候就会创建一个数据库的实例,这个库你完全就可以根据自己的需要想好他的名称,DBA,SysManager用户的密码,这个是你需要在安装的时候就要设定的,而且不要将其锁定,否 ...
- 数据库上机3(小型数据库应用程序开发)
注: ①各上机报告均根据<数据库技术与应用>课程的上机任务所做. ②课程教材为 <数据库系统概论(第五版)>/王珊, 萨师煊编著/北京:高等教育出版社,2014 上机要求: 1 ...
- 用vc对oracle数据库编程,用VC开发基于ORACLE数据库应用程序
用VC开发基于ORACLE数据库应用程序 徐智文 [期刊名称]<包钢科技> [年(卷),期]2006(032)001 [摘要]VC++是一个强大的客户端开发工具,可以很方便地开发出基于PR ...
- 小程序开发初体验,从静态demo到接入Bmob数据库完全实现
之前我胖汾公司年会.问我能不能帮忙搞个小程序方便他们进行游戏后的惩罚/抽奖使用.出了个简单的设计图.大概三天左右做了个简单的小程序.目前提交审核了.对于写过一小段时间vue来说小程序很容易上手.写法和 ...
- 在VC中使用ADO开发数据库应用程序
在VC中使用ADO开发数据库应用程序 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 ...
- 菜谱分享网站微信小程序开发说明(2)-数据库
菜谱分享网站微信小程序开发说明(2)-数据库 数据库选择使用的是MySQL,数据库的名称是gourmet,字符集:utf8mb4,排序规则:utf8mb4_general_ci 数据库一共6张表: 菜 ...
最新文章
- 激光雷达与相机—哪种更适合自动驾驶?
- 给定2个字符串,如何计算变化(插入、删除、替换)?【levenshtein distance 算法】
- Quartz集群部署
- BZOJ4825: [Hnoi2017]单旋(Splay)
- python——import导入模
- 滴滴经验分享:SQLFlow如何让运营专家用上AI?
- 第二:Pytest执行用例规则和Pycharm运行的三种姿态
- #6281. 数列分块入门 5
- matlab简单分析离散小波变换
- 专访OneAPM创始人何晓阳:APM将是开发者必备服务
- 关于 JVM 内存的 N 个问题(转)
- iOS常用三方库、插件、知名技术博客、常用开发工具使用介绍等等(Objective-C版本)
- [小程序] HBuilderX导入uniapp后,无法运行或发行,提示“[微信小程序开发者工具] × open IDE”
- CTF题记——取证小集合
- tomcat日志切割和定期删除
- burp 安装 license key not recognized
- JavaSE进阶篇【6】——2022年7月2日
- 微信小程序 -- 数据库数据excel文件批量导入
- codeforces1098D Eels
- 【云原生学习3】Pod及K8S
热门文章
- robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全
- java向量vector类,java数据结构——Vector(向量类)
- vue 封装dialog_element-dialog封装成子组件
- mysql新建表96k_innodb表 手工导入导出
- linux nat 端口,linux – iptables nat只是端口25?
- java val$name_匿名内部类 this.val$的问题
- 谁说C语言和C+太难?没前途?谬论!
- 点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结
- 机器学习中的数学基础:(2)矩阵的奇异值分解(SVD)及其应用
- 全网仅此一篇:工业级压力传感器设计及实现(华大半导体HC32L136)