如何使用IQueryable中的数据填充数据集?

时间:2009-05-08 20:16:04

标签: linq ado.net

有没有快速的方法在数据集中创建表并使用IQueryable中的模式填充它(数据不是来自EF或Linq2Sql)?我需要这个来将网格绑定到我的数据。

谢谢, 罗伊

1 个答案:

答案 0 :(得分:1)

您可以使用System.Data.Linq.DataContext类的Translate函数“自动”将表映射到类中。

有一个例子:

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 with 3 columns的表:ID,Name和Test 还有一个名为clsRow的类,在.Net中具有相同的表列属性名称。

public class clsRow
{
    public int ID { get; set; }
    public string Name { get; set; }
    public DateTime Date { get; set; }
}