c# - 如何使用c#.net在数据表中搜索一行

标签 c# select datatable ienumerable

我在 c#.net 中有一个包含以下列的数据表所以首先我填充这个数据表,然后我尝试通过搜索从中获取数据。

 void CalculateEzafkari2()
        {
            calEzaf = new DataTable();
            calEzaf.Columns.Add("IDp");
            calEzaf.Columns.Add("duration");
            calEzaf.Columns.Add("date", typeof(DateTime));
            calEzaf.Clear();
            foreach (var item in EzafArray)
            {
                if (item.Value.Count()%2==0)
                {
                    for (int i = 0; i < item.Value.Count(); i = i + 2)
                    {
                        DateTime dt1 = DateTime.Parse(item.Value[i]);
                        DateTime dt2 = DateTime.Parse(item.Value[i + 1]);
                        TimeSpan tp = dt2 - dt1;
                        calEzaf.Rows.Add(item.Key, tp.ToString(), dt1);
                    }
                }
                else
                {
                    for (int i = 0; i < item.Value.Count()-1; i = i + 2)
                    {
                        DateTime dt1 = DateTime.Parse(item.Value[i]);
                        DateTime dt2 = DateTime.Parse(item.Value[i + 1]);
                        TimeSpan tp = dt2 - dt1;
                        calEzaf.Rows.Add(item.Key, tp.ToString(), dt1);
                    }
                }
            }
        }

所以我使用下面的代码从中提取数据,因为我无法获取数据。此函数不返回数据。

public string ReadEzafKariFromDataTable(string IDp, DateTime dt)
        {
            string[] d = dt.ToString().Split(' ');

            IEnumerable<DataRow> selectedRows =
                calEzaf.AsEnumerable().Where(row => (row.Field<DateTime>("date").Equals(d[0])) && row.Field<int>("IDp")==(int.Parse(IDper)));
            foreach (DataRow row in selectedRows)
            {
                return row["duration"].ToString();
            }
            return "";
        }

最佳答案

试试下面的代码:

 IEnumerable<DataRow> selectedRows = calEzaf.AsEnumerable().Where(row => row.Field<DateTime>("date").Date == dt.Date && row.Field<int>("IDp") == int.Parse(IDper));

关于c# - 如何使用c#.net在数据表中搜索一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513531/

相关文章:

ruby-on-rails - 如何在 Rails 上的选择框中使用表列?

C:使用选择调用,当我阅读时,我如何跟踪数据?

C# - 更改数据表特定列的所有行的值

javascript - 如果单击某些选择选项,则在表单上输入自定义值

c# - 如何使用 LINQQ 或任何其他方法更新数据表中所有行的第一列?

jquery - 细胞选择数据表 PRIMEFACES?

c# - C# 中的 mdi 表单弹出窗口出错

c# - 通过Unity引用python脚本

c# - 在C#中存储读者信息

c# - 我可以在不使用 FileVersionInfo 的情况下获取 exe 文件的文件版本信息吗?