如何使用IQueryable中的数据填充数据集?
问题描述:
是否有任何快速的方法来创建一个数据集中的表格,并用IQueryable中的模式填充它(数据不是来自EF或Linq2Sql)?我需要这个将网格绑定到我的数据。如何使用IQueryable中的数据填充数据集?
感谢, 罗伊
答
可以使用System.Data.Linq.DataContext类的翻译功能设置为“自动”一表映射到类。
有一个例子:
using System.Data.Linq;
using System.Data.SqlClient;
string cnnStr = "YourConnectionString";
DataContext dc = new DataContext(cnnStr);
SqlConnection sqlCnn = (SqlConnection) dc.Connection;
sqlCnn.Open();
SqlCommand sqlCmd = new SqlCommand("select ID, Name, [Date] From test", sqlCnn);
SqlDataReader sqlDr = sqlCmd.ExecuteReader();
var result = dc.Translate<clsRow>(sqlDr);
foreach(clsRow row in result)
{
Console.Write(row.ID);
Console.Write(row.Name);
Console.Write(row.Date);
}
在这种情况下,你需要一个名为Test 3列的表:ID,名称和测试 ,也称为clsRow在.net中具有相同属性的类名的表格列。
public class clsRow
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
}
你是如何得到IQuerable的? – Jeremy 2009-05-08 20:21:33
我在解析“用模式填充它”时遇到问题。你的意思是说你的IQueryable中的对象的模式在设计时是未知的吗?即您必须创建一个DataTable,其中包含从IQueryable中的对象类型运行时计算出的列,然后将数据从IQueryable加载到DataTable中? – 2009-05-08 20:58:22