我需要在silverlight网格中显示数据集,但我无法弄清楚代码。在WCF方面使用数据集是必须的。我尝试了很多将ds转换为可查询的但是没有,但它不起作用,silverlight网格不会接受它。我也试过发送ds.toxml,但是在silverlight数据网格上显示了一列字符。我该怎么办?
client.GDatasetAsync();
}
void client_GDatasetCompleted(object sender, ServiceReference1.GDatasetCompletedEventArgs e)
{
dataGrid2.ItemsSource = e.Result[0];
dataGrid2.DataContext = e.Result[1];
}
[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;
}
一次只在一列中显示一个字符
答案 0 :(得分:1)
这是一个痛点。
Silverlight不支持数据集,因此您必须使用它们的唯一选择(例如,如果它们从现有存储过程返回,就像许多一样)是使用反射动态重新创建数据网格所使用的列。
幸运的是,有一个解决方案:http://silverlightdataset.net/silverlightdataset/Default.aspx。
我没有尝试过,但有全面的文档和源代码以及慷慨的许可证。有一点需要注意,虽然我不确定这是否已经更新为silverlight 4,说过我不能想为什么它不应该工作。一如既往,这将需要测试你的场景。