比較2個datatable內(nèi)容是否相同的方法
DataTable可以通過RowStatus來判斷狀態(tài)是否發(fā)生了改變。但是有些時候我們希望在行狀態(tài)即使為Modified的情況下也不要提示內(nèi)容發(fā)生了變化,這個時候我們可能就需要自己寫方法去判斷了。比如有一個DataTable中有選擇列的狀態(tài)發(fā)生了變化,但是我在保存時不希望系統(tǒng)判斷DataTable的行狀態(tài)發(fā)生了變化而將數(shù)據(jù)重新更新到數(shù)據(jù)庫中。
這樣我們可以將需要判斷DataTable中那些列變化時才需要保存了。以下是比較2個DataTable的內(nèi)容是否相同的方法:
/// <summary>
/// 比較兩個DataTable內(nèi)容是否相等,先是比數(shù)量,數(shù)量相等就比內(nèi)容
/// </summary>
/// <param name= "dtA "> </param>
/// <param name= "dtB "> </param>
private bool CompareDataTable(DataTable dtA, DataTable dtB)
{
if (dtA.Rows.Count == dtB.Rows.Count)
{
if (CompareColumn(dtA.Columns, dtB.Columns))
{
//比內(nèi)容
for (int i = 0; i < dtA.Rows.Count; i++)
{
for (int j = 0; j < dtA.Columns.Count; j++)
{
if (!dtA.Rows[i][j].Equals(dtB.Rows[i][j]))
{
return false;
}
}
}
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
/// <summary>
/// 比較兩個字段集合是否名稱,數(shù)據(jù)類型一致
/// </summary>
/// <param name= "dcA "> </param>
/// <param name= "dcB "> </param>
/// <returns> </returns>
private bool CompareColumn(System.Data.DataColumnCollection dcA, System.Data.DataColumnCollection dcB)
{
if (dcA.Count == dcB.Count)
{
foreach (DataColumn dc in dcA)
{
//找相同字段名稱
if (dcB.IndexOf(dc.ColumnName) > -1)
{
//測試數(shù)據(jù)類型
if (dc.DataType != dcB[dcB.IndexOf(dc.ColumnName)].DataType)
{
return false;
}
}
else
{
return false;
}
}
return true;
}
else
{
return false;
}
}
- datatable生成excel和excel插入圖片示例詳解
- c#將list類型轉(zhuǎn)換成DataTable方法示例
- 多個jquery.datatable共存,checkbox全選異常的快速解決方法
- DataTables List互相轉(zhuǎn)換的實現(xiàn)類示例
- 使用DataTable.Select 方法時,特殊字符的轉(zhuǎn)義方法分享
- ASP.NET中DataTable與DataSet之間的轉(zhuǎn)換示例
- 多個datatable共存造成多個表格的checkbox都被選中
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
- datatable行轉(zhuǎn)列示例分享
相關(guān)文章
C#中DataSet、DataTable、DataRow數(shù)據(jù)的復(fù)制方法
這篇文章介紹了C#中DataSet、DataTable、DataRow數(shù)據(jù)的復(fù)制方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Unity游戲開發(fā)中必備的設(shè)計模式之外觀模式詳解
外觀模式是一種結(jié)構(gòu)型設(shè)計模式,為復(fù)雜系統(tǒng)提供了簡單的接口,使得子系統(tǒng)間的通信更加簡潔和易于維護。在Unity游戲開發(fā)中,外觀模式可以幫助開發(fā)者更好地管理游戲?qū)ο蠛徒M件等復(fù)雜結(jié)構(gòu)2023-05-05