文件名称:开源Silverlight数据访问组件System.Data.Silverlight
文件大小:6.29MB
文件格式:RAR
更新时间:2016-06-06 07:39:36
silverlight 源代码 数据访问组件 DataSet DataTable
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
System.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