[英]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.