如何将数据集转换为silverlight支持的格式?

时间:2011-02-12 21:10:53

标签: silverlight dataset

我需要在silverlight网格中显示数据集,但我无法弄清楚代码。在WCF方面使用数据集是必须的。我尝试了很多将ds转换为可查询的但是没有,但它不起作用,silverlight网格不会接受它。我也试过发送ds.toxml,但是在silverlight数据网格上显示了一列字符。我该怎么办?

xaml.cs

 client.GDatasetAsync();


        }

        void client_GDatasetCompleted(object sender, ServiceReference1.GDatasetCompletedEventArgs e)
        {


            dataGrid2.ItemsSource =  e.Result[0];
            dataGrid2.DataContext = e.Result[1];
        }

svc.cs wcf service

 [OperationContract]
        public string[] GDataset()
        {
 DataSet ds = new DataSet();


          //  BusinessApplication2.Web.AdventureWorksLTEntities get_conn = new AdventureWorksLTEntities();

            //this also has begin transaction
          //  string connection = get_conn.Connection.ConnectionString;


            SqlConnection conn = new SqlConnection();

            conn.ConnectionString = @"Data Source=A-63A9D4D7E7834\THIRD;Initial Catalog=AdventureWorksLT;Integrated Security=True";

            conn.Open();

            SqlCommand command = new SqlCommand();

            command.CommandText = "SELECT * FROM [AdventureWorksLT].[SalesLT].[Customer]";

            command.CommandType = CommandType.Text;

            command.Connection = conn;

           SqlDataAdapter slqadaptor = new SqlDataAdapter(command.CommandText, command.Connection);

           slqadaptor.Fill(ds, "[AdventureWorksLT].[SalesLT].[Customer]");

            //var wer = ds as List();

            //SqlDataReader reader = command.ExecuteReader().AsQueryable();

            //command. also has begin and end execution

           // IQueryable alpha = command.ExecuteReader().AsQueryable();
           string[] add = new string[2];
           add[0] = ds.GetXml();
           add[1] = ds.GetXmlSchema();
           return add;





        }

结果

一次只在一列中显示一个字符

1 个答案:

答案 0 :(得分:1)

这是一个痛点。

Silverlight不支持数据集,因此您必须使用它们的唯一选择(例如,如果它们从现有存储过程返回,就像许多一样)是使用反射动态重新创建数据网格所使用的列。

幸运的是,有一个解决方案:http://silverlightdataset.net/silverlightdataset/Default.aspx

我没有尝试过,但有全面的文档和源代码以及慷慨的许可证。有一点需要注意,虽然我不确定这是否已经更新为silverlight 4,说过我不能想为什么它不应该工作。一如既往,这将需要测试你的场景。