从数据表获取多列

时间:2018-07-30 21:59:32

标签: c# sql datatable

我想像这样从DataTable中获取两列

 //method to get data as DataTable from db
var dtTasks = db.GetTableBySQL($"exec Task @para = {Para}");

 var currentPendingTasks = (from DataRow dr in dtTasks.Rows select dr["TaskId"], dr["Name"]).ToString();

但是由于第二个原因,我得到了

  

名称“ dr”在当前上下文中不存在

是否无法为每个DataRow选择多个列?

2 个答案:

答案 0 :(得分:0)

您可以实现yin列表:

 var data= dtTasks.AsEnumerable().Select(x => new
 {
   TaskId = (int)x["TaskId"],
   TaskName= (string)x["Name"]
 }).ToList();

然后:

var TaskId= data[0]. TaskId        

答案 1 :(得分:0)

您可以使用此语法创建一个匿名集合

var currentPendingTasks = (from DataRow dr in dt.Rows
                            select new 
                            { 
                                TaskId = dr["TaskId"], 
                                Name = dr["Name"]
                            });

但是,下面可能是一个更简单的方法来创建一个仅包含原始表中某些列的新DataTable

var currentPendingTasks = dt.DefaultView.ToTable(false, "TaskId", "Name");

MSDN DataView.ToTable method