从数据库把数据读到DataTableA中,同时COPY到DataTableB中
然后把DataTableA绑定到DataGrid上,进行编辑
当我点击登录的时候
判断这时的DataTableA和以前的DataTableA(也就是DataTableB)是否相同有个问题就是,刚COPY完的时候,我做了下测试DataTableA.equals(DataTableA) trueDataTableA.equals(DataTableB) false我不太明白了,COPY方法是同时把数据和结构一起考过了的,怎么会不一样呢明白人给解释下吧应该怎么去判断两个数据表的差异,表的字段有很多,我现在的有16个
有什么好的方法吗
然后把DataTableA绑定到DataGrid上,进行编辑
当我点击登录的时候
判断这时的DataTableA和以前的DataTableA(也就是DataTableB)是否相同有个问题就是,刚COPY完的时候,我做了下测试DataTableA.equals(DataTableA) trueDataTableA.equals(DataTableB) false我不太明白了,COPY方法是同时把数据和结构一起考过了的,怎么会不一样呢明白人给解释下吧应该怎么去判断两个数据表的差异,表的字段有很多,我现在的有16个
有什么好的方法吗
{
DataTable dt3 = new DataTable();
dt3.Merge(dt1);
dt3.AcceptChanges(); dt3.Merge(dt2);
DataTable dt4 = dt3.GetChanges();
return dt4 == null || dt4.Rows.Count == 0;
}
DataTable没有Merge方法~~~~~~~~
{
if(objA != null && objB != null)
{
if(objA.Rows.Count != objB.Rows.Count)
{
return false;
} if(objA.Columns.Count != objB.Columns.Count)
{
return false;
}
}
DataView dv = new DataView(objB);
string keys = "";
foreach(DataColumn col in objA.Columns)
{
keys += ","+col.ColumnName;
}
dv.Sort = keys.Substring(1);
foreach(DataRow row in objA.Rows)
{
if(row.RowState != DataRowState.Deleted)
{
if(dv.Find(row.ItemArray)<0)
{
return false;
}
}
else
{
return false;
}
}
return true;
}
参考