System.Data.Silverlight V2.0版本升级说明

一、升级说明

1、重写了一套DataSet、DataTable,自定义Xml序列化和反序列化方法;

2、优化了程序,引用该组建无需引用其它关联程序集;

3、增加DataTable与实体类集合的互转、DataTable转换成动态类型集合、DataTable直接绑定到控件;

4、增加事务处理功能;

5、感谢网友“尘世流浪汉”提出宝贵意见,也欢迎大家试用并提出更多建议!

二、新功能示例

1、DataTable新功能

            try

            {

                //创建一个数据连接

                DbConnection conn =newDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|SoundEvents.mdb;");

 

                //SQL Server无须做如下两步设置

                //设置使用的数据访问程序集

                conn.AssemblyName = "System.Data";

                //设置数据工厂,这里是Oledb方式的数据工厂

                conn.DbProviderFactory = "System.Data.OleDb.OleDbFactory";

 

 

                //创建一个数据命令

                DbCommandSyn cmd =newDbCommandSyn();

                //设置命令的连接

                cmd.Connection = conn;

                //设置SQL语句,可以是存储过程

                cmd.CommandText = "SELECT [JtServerCode],[JtEventID],[JtEventName] FROM [JtEvents] WHERE [JtServerCode]=@JtServerCode";

                //设置命令类型,一般SQL语句是Text,存储过程是StoredProcedure

                cmd.CommandType = DbCommandType.Text;

                //设置执行类型

                cmd.ExecuteType = DbExecuteType.Reader;

                //添加一个参数,无参数可以不添加

                cmd.Parameters.Add(newDbParameter("@JtServerCode","jt01"));

                //执行命令,得到结果

                DbCommandExecuteResult result = cmd.Execute();

 

                if (!string.IsNullOrEmpty(result.ErrMsg))//首先判断ErrMsg是否有值,有表示执行过程发生错误

                {

                    MessageBox.Show("发生错误:" + result.ErrMsg);

                }

                else

                {

                    //将DataTable直接绑定到控件

                    DataTable dt = result.ReaderResult;

                    dataGrid1.ItemsSource = dt;

 

                    //将DataTable转换成实体类集合后绑定到控件

                    List<HisEvent> hisEvents = result.ReaderResult.ToEntityList<HisEvent>();

                    dataGrid1.ItemsSource = hisEvents;

                   

                    //将DataTable转换成动态类型集合后绑定到控件

                    List<object> objList = result.ReaderResult.ToObjectList();

                    dataGrid1.ItemsSource = objList;

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show("发生错误:" + ex.ToString());

            }

 

2、事物示例

            try

            {

                //创建一个数据连接

                DbConnection conn =newDbConnection("Data Source=|DataDirectory|CSmsPlatThird.db;Pooling=true;FailIfMissing=false");

 

 

                //设置使用的数据访问程序集

                conn.AssemblyName = "System.Data.SQLite";

                //设置数据工厂,这里是SQLite的数据工厂

                conn.DbProviderFactory = "System.Data.SQLite.SQLiteFactory";

 

 

                //创建一个数据命令

                DbCommandSyn cmd =newDbCommandSyn();

                //设置命令的连接

                cmd.Connection = conn;

                //设置执行类型

                cmd.ExecuteType = DbExecuteType.Transaction;

 

                //添加事务

                TransactionItem trans1 =newTransactionItem();

                trans1.CommandText = "INSERT INTO [T_Message] ([Mobile],[Content],[DateTime],[PlatFlag],[State]) VALUES (@Mobile,@Content,@DateTime,@PlatFlag,@State)";

                trans1.CommandType = DbCommandType.Text;

                trans1.Parameters.AddWithValue("@Mobile",newRandom().Next(10000000, 888888888).ToString());

                trans1.Parameters.AddWithValue("@Content","这是一条测试短信!");

                trans1.Parameters.AddWithValue("@DateTime",DateTime.Now);

                trans1.Parameters.AddWithValue("@PlatFlag","SZHK");

                trans1.Parameters.AddWithValue("@State",true);

                cmd.Transaction.Add(trans1);

                TransactionItem trans2 =newTransactionItem();

                trans2.CommandText = "INSERT INTO [T_Logger] ([Content],[DateTime],[PlatFlag]) VALUES (@Content,@DateTime,@PlatFlag)";

                trans2.CommandType = DbCommandType.Text;

                trans2.Parameters.AddWithValue("@Content","短信发送成功!");

                trans2.Parameters.AddWithValue("@DateTime",DateTime.Now);

                trans2.Parameters.AddWithValue("@PlatFlag","SZHK");

                cmd.Transaction.Add(trans2);

 

                //执行命令,得到结果

                DbCommandExecuteResult result = cmd.Execute();

 

                if (!string.IsNullOrEmpty(result.ErrMsg))//首先判断ErrMsg是否有值,有表示执行过程发生错误

                {

                    MessageBox.Show("发生错误:" + result.ErrMsg);

                }

                else

                {

                    if (result.TransactionResult)

                    {

                        MessageBox.Show("事务执行成功!");

                    }

                    else

                    {

                        MessageBox.Show("事务执行失败!");

                    }

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show("发生错误:" + ex.ToString());

            }

 

三、技术交流

有任何问题可以加入唯一指定的专用QQ群153079750进行反馈交流,也欢迎加入笔者的另一个Silverlight技术群175213051进行交流。

 

点击此处下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值