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],[PlatFlag]) VALUES (@Content,@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进行交流。
点击此处下载 总结
以上是内存溢出为你收集整理的System.Data.Silverlight V2.0版本升级说明全部内容,希望文章能够帮你解决System.Data.Silverlight V2.0版本升级说明所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)