أريد فقط أن أخبر الجميع أن ما يتم تداوله على نطاق واسع عبر الإنترنت ليس صحيحًا بالضرورة.
أريد البحث في Google عن كيفية تحديد ما إذا كان جدولي DataTables متساويين أم لا. الطريقة الأكثر شيوعًا هي الطريقة التالية.
شفرة
قيمة منطقية خاصة (DataTable objA، DataTable objB)
{
إذا (objA != فارغة && objB != فارغة)
{
إذا (objA.Rows.Count != objB.Rows.Count)
{
عودة كاذبة.
}
إذا (objA.Columns.Count != objB.Columns.Count)
{
عودة كاذبة.
}
}
DataView dv = new DataView(objB);
مفاتيح السلسلة = "";
foreach (عمود DataColumn في objA.Columns)
{
المفاتيح += ""،"+col.ColumnName;
}
dv.Sort =keys.Substring(1);
foreach (صف DataRow في objA.Rows)
{
إذا (row.RowState!= DataRowState.Deleted)
{
إذا (dv.Find(row.ItemArray)<0)
{
عودة كاذبة.
}
}
آخر
{
عودة كاذبة.
}
}
عودة صحيحة؛
}
لا يمكن التحقق من منشئ هذا الجزء من التعليمات البرمجية، ولكن هناك العديد من الشائعات.
ولا أدري هل الذي أعاد طبعها قد تحقق من صحة هذه الطريقة، أم أنه أعاد طبعها للتو.
هذه الطريقة خاطئة في الواقع.
إذا كان هناك جدولان من DataTables لهما نفس عدد الصفوف والأعمدة، ولكن الصف الأول هو نفسه والصف الثاني مختلف، فستظل طريقة المقارنة أعلاه تُرجع True.
أكتب هنا لأقول لأغلبية الناس (بما فيهم أنا) أن ما يتم تداوله على الإنترنت ليس صحيحًا بالضرورة، وأريد أيضًا أن أقول شيئًا للمحاربين القدامى، يرجى التحقق من صحة المحتوى عند إعادة طباعته هو جيد لنفسي مهما كان، كل شيء جيد للآخرين.
هذه هي المرة الأولى التي أقوم فيها بالنشر، إذا كان ما أقوله خاطئًا، أتمنى ألا تقترحه.
آمل أيضًا أن يتمكن الخبير من تقديم طريقة صحيحة وفعالة لمقارنة ما إذا كان جدولي البيانات متساويين.
لقد استخدمت طريقة أكثر قديمة
شفرة
المنطق العام DataTableTheSame (DataTable Table1، DataTable Table2)
{
إذا (الجدول 1 == فارغ || الجدول 2 == فارغ)
{
عودة كاذبة.
}
إذا (Table1.Rows.Count != Table2.Rows.Count)
{
عودة كاذبة.
}
إذا (Table1.Columns.Count != Table2.Columns.Count)
{
عودة كاذبة.
}
لـ (int i = 0; i < Table1.Rows.Count; i++)
{
لـ (int j = 0; j < Table1.Columns.Count; j++)
{
إذا (Table1.Rows[i][j].ToString() != Table2.Rows[i][j].ToString())
{
عودة كاذبة.
}
}
}
عودة صحيحة؛
}