该解决方案使用的是"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服务代码:

View Code

  1 #region 用户管理
  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代码:

View Code

  1 public partial class GH_User : Page
  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         }

子窗体视图:

子窗体代码:

View Code

 1 GH_ServiceReference.GH_serviceSoapClient client = new GH.GH_ServiceReference.GH_serviceSoapClient();
 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数据库应用程序开发相关推荐

  1. 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一

    数据库应用程序开发基础篇-- .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来 ...

  2. 存储过程,从新的视角看待数据库应用程序开发(游标,变量,结果集)

    存储过程,从新的视角看待数据库应用程序开发(游标,变量,结果集) by ColdZoo 2015年03月26日 通常情况下,在操作数据库里数据的时候,我们会选择一种编程语言(Java,C++, et ...

  3. 用mysql开发应用程序_一个典型的数据库应用程序开发流程

    1 系统总体设计 1.1 应用背景 1.2 项目目标:包括系统登录功能,权限设置,数据录入,信息查询,报表输出,系统维护,退出功能等: 1.3 设计思路:自底向上,首先设计数据结构,然后设计表单.菜单 ...

  4. oracle应用程序开发,关于Oracle 数据库应用程序开发问题

    首先安装oracle数据库的时候就会创建一个数据库的实例,这个库你完全就可以根据自己的需要想好他的名称,DBA,SysManager用户的密码,这个是你需要在安装的时候就要设定的,而且不要将其锁定,否 ...

  5. 数据库上机3(小型数据库应用程序开发)

    注: ①各上机报告均根据<数据库技术与应用>课程的上机任务所做. ②课程教材为 <数据库系统概论(第五版)>/王珊, 萨师煊编著/北京:高等教育出版社,2014 上机要求: 1 ...

  6. 用vc对oracle数据库编程,用VC开发基于ORACLE数据库应用程序

    用VC开发基于ORACLE数据库应用程序 徐智文 [期刊名称]<包钢科技> [年(卷),期]2006(032)001 [摘要]VC++是一个强大的客户端开发工具,可以很方便地开发出基于PR ...

  7. 小程序开发初体验,从静态demo到接入Bmob数据库完全实现

    之前我胖汾公司年会.问我能不能帮忙搞个小程序方便他们进行游戏后的惩罚/抽奖使用.出了个简单的设计图.大概三天左右做了个简单的小程序.目前提交审核了.对于写过一小段时间vue来说小程序很容易上手.写法和 ...

  8. 在VC中使用ADO开发数据库应用程序

    在VC中使用ADO开发数据库应用程序 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 ...

  9. 菜谱分享网站微信小程序开发说明(2)-数据库

    菜谱分享网站微信小程序开发说明(2)-数据库 数据库选择使用的是MySQL,数据库的名称是gourmet,字符集:utf8mb4,排序规则:utf8mb4_general_ci 数据库一共6张表: 菜 ...

最新文章

  1. 激光雷达与相机—哪种更适合自动驾驶?
  2. 给定2个字符串,如何计算变化(插入、删除、替换)?【levenshtein distance 算法】
  3. Quartz集群部署
  4. BZOJ4825: [Hnoi2017]单旋(Splay)
  5. python——import导入模
  6. 滴滴经验分享:SQLFlow如何让运营专家用上AI?
  7. 第二:Pytest执行用例规则和Pycharm运行的三种姿态
  8. #6281. 数列分块入门 5
  9. matlab简单分析离散小波变换
  10. 专访OneAPM创始人何晓阳:APM将是开发者必备服务
  11. 关于 JVM 内存的 N 个问题(转)
  12. iOS常用三方库、插件、知名技术博客、常用开发工具使用介绍等等(Objective-C版本)
  13. [小程序] HBuilderX导入uniapp后,无法运行或发行,提示“[微信小程序开发者工具] × open IDE”
  14. CTF题记——取证小集合
  15. tomcat日志切割和定期删除
  16. burp 安装 license key not recognized
  17. JavaSE进阶篇【6】——2022年7月2日
  18. 微信小程序 -- 数据库数据excel文件批量导入
  19. codeforces1098D Eels
  20. 【云原生学习3】Pod及K8S

热门文章

  1. robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全
  2. java向量vector类,java数据结构——Vector(向量类)
  3. vue 封装dialog_element-dialog封装成子组件
  4. mysql新建表96k_innodb表 手工导入导出
  5. linux nat 端口,linux – iptables nat只是端口25?
  6. java val$name_匿名内部类 this.val$的问题
  7. 谁说C语言和C+太难?没前途?谬论!
  8. 点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结
  9. 机器学习中的数学基础:(2)矩阵的奇异值分解(SVD)及其应用
  10. 全网仅此一篇:工业级压力传感器设计及实现(华大半导体HC32L136)