簡體   English   中英

通過lambda查詢檢索並在C#中綁定到DataTable

[英]Retrieve by lambda query and bind to DataTable in C#

我創建了一個dataTable

   private static DataTable GenerateDataTable()
    {
        DataTable _tempSalaryCalculatoin = new DataTable();
        _tempSalaryCalculatoin.Columns.Add("ID", typeof(string));
        _tempSalaryCalculatoin.Columns.Add("NRC", typeof(string));
        _tempSalaryCalculatoin.Columns.Add("FullName", typeof(string));
        _tempSalaryCalculatoin.Columns.Add("Rank", typeof(string));
        _tempSalaryCalculatoin.Columns.Add("Deduction", typeof(string));
        _tempSalaryCalculatoin.Columns.Add("MontlySalary", typeof(string));
        _tempSalaryCalculatoin.Columns.Add("NetSalary", typeof(string));

    }

我有數據庫表( Employee )喜歡

ID    NRC     FullName    FatherName    SpouseName       Rank
1     xxx     xxxxxxx     xxxxxxxxx     xxxxxxxxxx      xxxxxx
2     xxx     xxxxxxx     xxxxxxxxx     xxxxxxxxxx      xxxxxx
3     xxx     xxxxxxx     xxxxxxxxx     xxxxxxxxxx      xxxxxx
4     xxx     xxxxxxx     xxxxxxxxx     xxxxxxxxxx      xxxxxx

數據就是例如。

我使用lambda query檢索此數據,

 DataTable _dtSC = GenerateDataTable(); // Generated by the above method
 var _empData  = db.DBInsContext.Employees.Where(x => x.Rank == "xxx" ).ToList();

我想將此_empData轉換為DataTable _dtSc
請注意,> DataTable _dtSc只有七列。
我想將列(在Employee表中不存在)保留為Null或Empty。如(Deduction,MontlySalary和NetSalary)。

最簡單和最有效的是使用循環。 請注意,LINQ是一個查詢而不是修改工具:

foreach(var emp in _empData)
{
    var newRow = _dtSC.Rows.Add();
    newRow.SetField("ID", emp.ID);
    // and so on ...
    // you are free to not initialize a field like Deduction
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM