Linq操作DataTable

来源:互联网 发布:网络代写小说 编辑:程序博客网 时间:2024/04/30 17:58
List<string> employeeCodeList = new List<string>();
            List<string> projectCodeList = new List<string>();
            DataTable dt = GetDataTable("select * from SalaryDaily", "SalaryDaily");


            DataTable dtEmployee = GetDataTable("select sEmployeeCode, sProjectCode from SalaryDaily group by sEmployeeCode, sProjectCode", "EmployeeInfo");
            DataTable dtProject = GetDataTable("select sProjectCode from SalaryDaily group by sProjectCode", "ProjectInfo");
            if (dtEmployee.Rows.Count > 0)
            {
                for (int i = 0; i < dtEmployee.Rows.Count; i++)
                {
                    //for (int j = 0; j < dtProject.Rows.Count; j++)
                    //{
                    //    string sEmployeeCode = dtEmployee.Rows[i]["sEmployeeCode"].ToString();
                    //    string sProjectCode = dtProject.Rows[j]["sProjectCode"].ToString();
                    //    var result = from c in dt.AsEnumerable()
                    //                 where c.Field<string>("sEmployeeCode").Equals(sEmployeeCode) && c.Field<string>("sProjectCode").Equals(sProjectCode)
                    //                 select c;


                    //    //var result2 = from c in dt.AsEnumerable()
                    //    //              where c.Field<DateTime>("dtBegin") >= Convert.ToDateTime("2012-01-01")
                    //    //              select c;
                    //}


                    //}
                    for (int j = 0; j < dtEmployee.Rows.Count; j++)
                    {
                        employeeCodeList.Add(dtEmployee.Rows[j]["sEmployeeCode"].ToString());
                        projectCodeList.Add(dtEmployee.Rows[j]["sProjectCode"].ToString());
                    }


                    if (employeeCodeList.Count > 0 && projectCodeList.Count > 0)
                    {
                        IEnumerable<string> disEmployddCode = employeeCodeList.Distinct().ToList();
                        IEnumerable<string> disProejctCode = projectCodeList.Distinct().ToList();
                        foreach (string employeeCode in disEmployddCode)
                        {
                            foreach (string projectCode in disProejctCode)
                            {
                                var result = from c in dt.AsEnumerable()
                                             where c.Field<string>("sEmployeeCode").Equals(employeeCode) && c.Field<string>("sProjectCode").Equals(projectCode)
                                             select c;
                            }
                        }
                    }
                }
            }
        }