文件名称:
开源Silverlight数据访问组件System.Data.Silverlight
开发工具:
文件大小: 6mb
下载次数: 0
上传时间: 2013-05-17
详细说明: 1.概述 该组件提供类似ADO.NET编程接口,可以直接在Silverlight端访问Web端数据库。可以实现在Web端无需事先手工编写或自动创建任何程序代码和数据实体类的情况下, 便可在Silverlight端对Web端数据库进行增加、删除、修改、查询等数据操作。此外, 还支持访问数据库的存储过程(StoredProcdures)、视图(Views)、自定义函数(User Defined Functions)等。 2、使用前的准备 2.1组件Lib文件 该组件包含3个文件: System.Data.Silverlight.dll、 System.Data.Silverlight.Web.dll DataHandler.ashx 2.1.1System.Data.Silverlight.dll Silverlight端需引用的程序集,引用该程序集还需要引用关联的程序集,包含: System.ComponentModel.DataAnnotations.dll System.Windows.Controls.Data.dll System.Windows.Controls.Data.Input.dll System.Windows.Data.dll Sy stem.Xml.Linq.dll 该程序集中定义了一套DataSet、DataTa对象,作为数据通讯的数据格式,完全兼容ADO.NET中的DataSet、DataTable,两者之间可以通过XML互相转换,提供相应的转换方法。程序中还定义了一套DbConnection、DbCommand对象,用于向Web端发起数据库操作命令,使用方式类似ADO.NET。 2.1.2 System.Data.Silverlight.Web.dll Web服务器端文件,需要把该程序集拷贝到网站Bin目录,无需引用。 2.1.3 DataHandler.ashx Web服务器端的文件,需要把该文件拷贝到网站根目录。 2.2同步方式操作数据库示例 //创建一个数据连接 DbConnection conn = new DbConnection("Server=192.168.0.7;DataBase=JitonClient;Uid=sa;Pwd=jiton;"); //创建一个数据命令 DbCommandSyn cmd = new DbCommandSyn(); //设置命令的连接 cmd.Connection = conn; //设置SQL语句,可以是存储过程 cmd.CommandText = "SELECT [UserId],[UserName],[GroupId] FROM [Usertb] WHERE [GroupId]=@GroupId"; //设置命令类型,一般SQL语句是Text,存储过程是StoredProcedure cmd.CommandType = DbCommandType.Text; //设置执行类型 cmd.ExecuteType = DbExecuteType.Reader; //添加一个参数,无参数可以不添加 cmd.Parameters.Add(new DbParameter(DbType.Int32, "@GroupId", 5)); //执行命令,得到结果 DbCommandExecuteResult result = cmd.Execute(); if (!string.IsNullOrEmpty(result.ErrMsg))//首先判断ErrMsg是否有值,有表示执行过程发生错误 { MessageBox.Show("发生错误:" + result.ErrMsg); } else { DataTable dt = result.ReaderResult; //将数据显示在DataGrid中 this.dataGrid1.ItemsSource = dt.Rows; } 2.3异步方式操作数据库示例 //创建一个数据连接 DbConnection conn = new DbConnection("Data Source=|DataDirectory|CSmsPlatThird.db;Pooling=true;FailIfMissing=false"); //设置使用的数据访问程序集 conn.AssemblyName = "System.Data.SQLite"; //设置数据工厂,这里是SQLite的数据工厂 conn.DbProviderFactory = "System.Data.SQLite.SQLiteFactory"; //创建一个数据命令 DbCommandAsyn cmd = new DbCommandAsyn(); //设置命令的连接 cmd.Connection = conn; //设置SQL语句,可以是存储过程 cmd.CommandText = "SELECT [Id],[Content],[PlatFlag],[DateTime] FROM [T_Logger] WHERE [Id]>=@Id"; //设置命令类型,一般SQL语句是Text,存储过程是StoredProcedure cmd.CommandType = DbCommandType.Text; //设置执行类型 cmd.ExecuteType = DbExecuteType.Reader; //添加一个参数,无参数可以不添加 cmd.Parameters.Add(new DbParameter(DbType.Int32, "@Id", 3)); //设置命令执行完毕的委托事件 cmd.ExecuteEnd += new EventHandler(cmd_ExecuteEnd); //异步执行命令 cmd.Execute(); void cmd_ExecuteEnd(object sender, DbCommandExecuteResult e) { if (!string.IsNullOrEmpty(e.ErrMsg))//首先判断ErrMsg是否有值,有表示执行过程发生错误 { MessageBox.Show("发生错误:" + e.ErrMsg); } else { DataTable dt = e.ReaderResult; //将数据显示在DataGrid中 this.dataGrid1.ItemsSource = dt.Rows; } } 2.4对其它数据库的支持 该组件默认支持SQL Sserver,理论上也可支持其它数据库,只要数据库提供对应的ADO.NET实现接口,已经测试过Access、SQLite。操作其它数据库时必须把对应的ADO.NET实现接口的程序集拷贝到网站Bin目录下面,操作SQL Server无需该步骤。比如操作SQLite数据库,需要把SQLite的ADO.NET实现接口程序集System.Data.SQLite.dll文件拷贝到网站Bin下面。此外还需指定DbConnection对象的AssemblyName、DbProviderFactory属性的值。 //创建一个数据连接 DbConnection conn = new DbConnection("Data Source=|DataDirectory|CSmsPlatThird.db;Pooling=true;FailIfMissing=false"); //设置使用的数据访问程序集 conn.AssemblyName = "System.Data.SQLite"; //设置数据工厂,这里是SQLite的数据工厂 conn.DbProviderFactory = "System.Data.SQLite.SQLiteFactory"; 其它操作步骤和操作SQL Server无差异,完整的示例代码见2.3中的示例。 2.5技术交流 有任何问题可以加入唯一指定的专用QQ群153079750进行反馈交流,也欢迎加入笔者的另一个Silverlight技术群175213051进行交流。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.