C# ds和addRecords,我试过用谷歌搜索,但失败了。事实上这是可能的,但我不知道你以后会如何区分它们。太棒了,代码运行得很好,谢谢@Ivan Stoevi想要添加状态栏如果newRecod那么状态将是newRecord如果更新记录那么状态更新记录,ad
C# ds和addRecords,我试过用谷歌搜索,但失败了。事实上这是可能的,但我不知道你以后会如何区分它们。太棒了,代码运行得很好,谢谢@Ivan Stoevi想要添加状态栏如果newRecod那么状态将是newRecord如果更新记录那么状态更新记录,ad,c#,linq,datatable,C#,Linq,Datatable,ds和addRecords,我试过用谷歌搜索,但失败了。事实上这是可能的,但我不知道你以后会如何区分它们。太棒了,代码运行得很好,谢谢@Ivan Stoevi想要添加状态栏如果newRecod那么状态将是newRecord如果更新记录那么状态更新记录,addOrUpdateRecords是否可以在最后一个查询(单个查询)中记录一个查询,最后您会得到该信息,因此,例如,您可以执行类似以下操作:select new{Record=drNew,Status=drOld==null?StatusEnum
ds和addRecords,我试过用谷歌搜索,但失败了。事实上这是可能的,但我不知道你以后会如何区分它们。太棒了,代码运行得很好,谢谢@Ivan Stoevi想要添加状态栏如果newRecod那么状态将是newRecord如果更新记录那么状态更新记录,addOrUpdateRecords是否可以在最后一个查询(单个查询)中记录一个查询,最后您会得到该信息,因此,例如,您可以执行类似以下操作:
select new{Record=drNew,Status=drOld==null?StatusEnum.new:StatusEnum.Updated}
上面的代码运行良好,我们可以对updateRecords和addRecords进行公共linq查询吗,我试过用谷歌搜索,但失败了。事实上这是可能的,但我不知道你以后会如何区分它们。太棒了,代码运行得很好,谢谢@Ivan Stoevi想要添加状态栏如果newRecod那么状态将是newRecord如果更新记录那么状态更新记录,addOrUpdateRecords是否可以在最后一次查询(单个查询)中记录一个查询,最后您会得到该信息,例如,您可以执行类似于select new{Record=drNew,Status=drOld==null?StatusEnum.new:StatusEnum.Updated}
DataTable dt1 = new DataTable("Table1");
dt1.Columns.Add("Id",typeof(int));
dt1.Columns.Add("Name");
dt1.Columns.Add("Occupation");
DataTable dt2 = new DataTable("Table2");
dt2.Columns.Add("Id",typeof(int));
dt2.Columns.Add("Name");
dt2.Columns.Add("Occupation");
DataTable Final = dt1.AsEnumerable()
.Except(dt2.AsEnumerable(), DataRowComparer.Default)
.CopyToDataTable();
[I need the result to be like this][1]
[1]: http://i.stack.imgur.com/brqCF.jpg
new Code :
DataTable dtFinal = new DataTable();
DataTable dtNew = new DataTable();
dtNew.Columns.Add("Id");
dtNew.Columns.Add("Name");
dtNew.Rows.Add("1", "Yash Fale");
dtNew.Rows.Add("3", "Rahul");
DataTable dtOld = new DataTable();
dtOld.Columns.Add("Id");
dtOld.Columns.Add("Name");
dtOld.Rows.Add("1", "Yash");
dtOld.Rows.Add("2", "pops");
var addOrUpdateRecords =
(from drNew in dtNew.AsEnumerable()
join drOld in dtOld.AsEnumerable() on drNew.Field<string>("Id") equals drOld.Field<string>("Id") into match
from drOld in match.DefaultIfEmpty()
where drOld == null /* new */ || !DataRowComparer.Default.Equals(drNew, drOld) /* changed */
select drNew).ToList();
if (addOrUpdateRecords.Any())
dtFinal = addOrUpdateRecords.CopyToDataTable();
// i want to add new column like as Status for below condition
// for added Records = status : newRecord
// for updated Records = status : UpdatedRecord
//OutPut : ie. dtFinal
// ID Name Status
// 1 Yash Fale UpdatedRecord
// 3 Rahul newRecord
var addRecords =
(from drNew in dtNew.AsEnumerable()
join drOld in dtOld.AsEnumerable() on drNew.Field<int>("Id") equals drOld.Field<int>("Id") into match
where !match.Any()
select drNew).ToList();
var dtAdd = addRecords.Any() ? addRecords.CopyToDataTable() : null;
var deleteRecords =
(from drOld in dtOld.AsEnumerable()
join drNew in dtNew.AsEnumerable() on drOld.Field<int>("Id") equals drNew.Field<int>("Id") into match
where !match.Any()
select drOld).ToList();
var updateRecords =
(from drNew in dtNew.AsEnumerable()
join drOld in dtOld.AsEnumerable() on drNew.Field<int>("Id") equals drOld.Field<int>("Id")
where !DataRowComparer.Default.Equals(drNew, drOld)
select drNew).ToList();
var addOrUpdateRecords =
(from drNew in dtNew.AsEnumerable()
join drOld in dtOld.AsEnumerable() on drNew.Field<int>("Id") equals drOld.Field<int>("Id") into match
from drOld in match.DefaultIfEmpty()
where drOld == null /* new */ || !DataRowComparer.Default.Equals(drNew, drOld) /* changed */
select drNew).ToList();