其实把DataSet数据集转化为XML格式的字符串以及把XML格式的字符串解析为DataSet数据集的工作,已经有加拿大的同行把业务逻辑封装好了,我们只要调用其中的方法就可以了,你也可以反编译看看老外的代码,老外的原文地址:http://silverlightdataset.net/silverlightdataset/Default.aspx,其中用到的组件为Silverlight.DataSetConnector.dll(服务端使用)和Silverlight.DataSet.dll(用于客户端)
我们使用原生态的ADO.NET进行数据访问,你也可以替代成你自己的数据ProvIDer.
1: [EnableClIEntAccess()]
2: public class CustomerDomainService : DomainService
3: {
4: public List<Item> GetItemsFromDatabase()
5: {
6: sqlConnection sqlConnection = new sqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MainDb"].ToString());
7: DataSet obJset = new DataSet();
8: sqlCommand sqlCommand = new sqlCommand();
9: sqlCommand.Connection = sqlConnection;
10: sqlCommand.CommandText = "Select * FROM tblitem";
11: sqlDataAdapter sqlDataAdapter = new sqlDataAdapter();
12: sqlDataAdapter.SelectCommand = sqlCommand;
13: sqlDataAdapter.Fill(obJset);
14:
15: List<Item> lstResult = new List<Item>();
16: Item objEmployee;
17:
18: if (obJset.tables.Count > 0)
19: {
20: foreach (DaTarow dr in obJset.tables[0].Rows)
21: {
22: objEmployee = new Item();
23: objEmployee.Quantity = Convert.ToInt32(dr["Quantity"]);
24: objEmployee.ItemDescription = dr["ItemDescription"].ToString();
25: objEmployee.ItemNumber = Convert.ToInt32(dr["ItemNumber"]);
26: lstResult.Add(objEmployee);
27: }
28: }
29: return lstResult;
30: }
31: }
但是SL的DataGrID不接受DATASET或者Datatable类型的数据源的,他接受的是实休集合。所以我们就需要扩展SL的DataGrID,使其变为像ASP.NET中的DataVIEw那样,有DataSource属性,有DataBind方法。这个有源代码可以下载,你可以根据自己的需要再来扩展。下载地址为:http://slbindabledatagrID.codeplex.com/,其实这个方法的核心还是要把数据集转化为List类型的集合,然后这个结果再赋值给DataGrID
总结以上是内存溢出为你收集整理的silverlight获取ado.net数据源全部内容,希望文章能够帮你解决silverlight获取ado.net数据源所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)