Linq在数据表中的声明

时间:2016-04-26 15:21:13

标签: c# linq foreach datatable

我将我的数据表的数据导入List但是我只需要获取匹配日期的项目如何才能对我的数据表的Linq语句进行过滤以提供日期的数据? 我的表格结构取自存储过程

这是我的代码:

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("JoinedRecords", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            conn.Open();
            DataTable myTable = new DataTable();
            myTable.Load(cmd.ExecuteReader());
            conn.Close();

for (var rowIndex = 0; rowIndex < myTable.Rows.Count; rowIndex++)
                {
                    var row = myTable.Rows[rowIndex];
  var rowValues = new List<string>(); 
  foreach (DataColumn column in myTable.Columns)//Where column.Date.Day == 3
  {
      rowValues.Add(row[column].ToString());
  }

var jsonRow = JsonConvert.SerializeObject(rowValues);

                    // Write current row
                    reader.Write(jsonRow);

                    // Add separating comma
                    if (rowIndex != myTable.Rows.Count - 1)
                        reader.WriteLine(",");

} 我怎样才能做到这一点? 我的数据表中有一个数据具有日期时间格式

2 个答案:

答案 0 :(得分:1)

你可以尝试:

var myTable = new DataTable();
var rowValues = myTable.AsEnumerable().Where(r => r.Field<string>("Date") == "3").ToList();

.Select()之前使用.ToList()来获得您想要的内容? 很难提供更多的数据示例。

答案 1 :(得分:0)

var rowValues = new List<String>();
var value = from r in rowValues
            where column.Date.Day == 3
            select r;