详解Silverlight与MySQL数据库互操作

Silverlight与MySQL数据库互操作,也是因为MySQL在平时开发中应用得很多,适合大多数开发环境与要求。本文用到的MySQL环境是MySQL Connector Net 6.1.1,需要大家提前安装。

创新互联响应式网站特点就是不管在电脑、平板还是手机上,H5网站设计都会根据屏幕尺寸自动调节大小、图片分辨率,并且融入一定的动画特效,让网站看起来非常的美观大方。从网站需求对接到网站制作设计、从代码编写到项目上线运维,技术人员全程跟踪,快速响应

准备工作

1)建立起测试项目

细节详情请见强大的DataGrid组件[2]_数据交互之ADO.NET Entity Framework——Silverlight学习笔记[10]。

2)创建测试用数据库

如下图所示,创建一个名为employees的MySQL数据库,建立数据表名称为Employee。

3)安装MySQL Connector Net 6.1.1

为了能让.NET操作MySQL数据库,请务必安装。

建立数据模型

EmployeeModel.cs文件(放置在服务端项目文件夹下)

 
 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. namespace dataformnmysqldb  
  5. {  
  6.     public class EmployeeModel  
  7.     {  
  8.         public int EmployeeID { get; set; }  
  9.         public string EmployeeName { get; set; }  
  10.         public int EmployeeAge { get; set; }  
  11.     }  

建立服务端Web Service

右击服务端项目文件夹,选择Add->New Item....,按下图所示建立一个名为EmployeesInfoWebService.asmx的Web Service,作为Silverlight与MySQL数据库互操作的桥梁。

在Silverlight客户端应用程序文件夹下,右击References文件夹,添加名为MySql.Data的命名空间。之后,双击EmployeesInfoWebService.asmx打开该文件,将里面的内容修改如下:

 
 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.Services;  
  6. using System.Data;  
  7. using MySql.Data.MySqlClient;//引入该命名空间是为了操作MySQL数据库  
  8. namespace dataformnmysqldb  
  9. {  
  10.     ///   
  11.     /// Summary description for EmployeesInfoWebService  
  12.     /// 
  13.  
  14.    [WebService(Namespace = "http://tempuri.org/")]  
  15.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  16.     [System.ComponentModel.ToolboxItem(false)]  
  17.     // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.   
  18.     // [System.Web.Script.Services.ScriptService]  
  19.     public class EmployeesInfoWebService : System.Web.Services.WebService  
  20.     {  
  21.         [WebMethod]//获取雇员信息  
  22.         public List  GetEmployeesInfo()  
  23.         {  
  24.             List  returnedValue =  new List ();  
  25.             MySqlCommand Cmd = new MySqlCommand();  
  26.             SQLExcute("SELECT * FROM Employee", Cmd);  
  27.             MySqlDataAdapter EmployeeAdapter = new MySqlDataAdapter();  
  28.             EmployeeAdapter.SelectCommand = Cmd;  
  29.             DataSet EmployeeDataSet = new DataSet();  
  30.             EmployeeAdapter.Fill(EmployeeDataSet);  
  31.             foreach (DataRow dr in EmployeeDataSet.Tables[0].Rows)  
  32.             {  
  33.                 EmployeeModel tmp = new EmployeeModel();  
  34.                 tmp.EmployeeID = Convert.ToInt32(dr[0]);  
  35.                 tmp.EmployeeName = Convert.ToString(dr[1]);  
  36.                 tmp.EmployeeAge = Convert.ToInt32(dr[2]);  
  37.                 returnedValue.Add(tmp);  
  38.             }  
  39.            return returnedValue;  
  40.         }  
  41.         [WebMethod] //添加雇员信息  
  42.         public void Insert(List  employee)  
  43.         {  
  44.             employee.ForEach(x =>  
  45.             {  
  46.                 string CmdText = "INSERT INTO Employee(EmployeeName,EmployeeAge) VALUES('" + x.EmployeeName + "'," + x.EmployeeAge.ToString() + ")";  
  47.                 SQLExcute(CmdText);  
  48.             });  
  49.         }  
  50.         [WebMethod] //更新雇员信息  
  51.         public void Update(List  employee)  
  52.         {  
  53.             employee.ForEach(x =>  
  54.             {  
  55.                 string CmdText = "UPDATE Employee SET EmployeeName='" + x.EmployeeName + "',EmployeeAge=" + x.EmployeeAge.ToString();  
  56.                 CmdText += " WHERE EmployeeID=" + x.EmployeeID.ToString();  
  57.                 SQLExcute(CmdText);  
  58.             });  
  59.         }  
  60.         [WebMethod] //删除雇员信息  
  61.         public void Delete(List  employee)  
  62.         {  
  63.             employee.ForEach(x =>  
  64.             {  
  65.                 string CmdText = "DELETE FROM Employee WHERE EmployeeID=" + x.EmployeeID.ToString();  
  66.                 SQLExcute(CmdText);  
  67.             });  
  68.         }  
  69.         //执行SQL命令文本,重载1  
  70.         private void SQLExcute(string SQLCmd)  
  71.         {  
  72.             string ConnectionString = "server=localhost;user id=root;password=yourpassword;database=employees";  
  73.             MySqlConnection Conn = new MySqlConnection(ConnectionString);  
  74.             Conn.Open();  
  75.             MySqlCommand Cmd = new MySqlCommand();  
  76.             Cmd.Connection = Conn;  
  77.             Cmd.CommandTimeout = 15;  
  78.             Cmd.CommandType = System.Data.CommandType.Text;  
  79.             Cmd.CommandText = SQLCmd;  
  80.             Cmd.ExecuteNonQuery();  
  81.             Conn.Close();  
  82.         }  
  83.         //执行SQL命令文本,重载2  
  84.         private void SQLExcute(string SQLCmd, MySqlCommand Cmd)  
  85.         {  
  86.             string ConnectionString = "server=localhost;user id=root;password= yourpassword;database=employees";  
  87.             MySqlConnection Conn = new MySqlConnection(ConnectionString);  
  88.             Conn.Open();  
  89.             Cmd.Connection = Conn;  
  90.             Cmd.CommandTimeout = 15;  
  91.             Cmd.CommandType = System.Data.CommandType.Text;  
  92.             Cmd.CommandText = SQLCmd;  
  93.             Cmd.ExecuteNonQuery();  
  94.        }  
  95.     }  

之后,在Silverlight客户端应用程序文件夹下,右击References文件夹,选择菜单选项Add Service Reference...。如下图所示,引入刚才我们创建的Web Service(别忘了按Discover按钮进行查找)。

创建Silverlight客户端应用程序

详情参见我的[原创]Silverlight与Access数据库的互操作(CURD完全解析)。

Silverlight与MySQL数据库互操作最终效果图

 

分享文章:详解Silverlight与MySQL数据库互操作
文章位置:http://www.shufengxianlan.com/qtweb/news33/22283.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联