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服務代碼:
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数据库应用程序开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求纤夫的爱歌词!
- 下一篇: Test class should ha