Heim > Artikel > Backend-Entwicklung > C#-Excel-Datenduplizierungsprüfung und Tabellendatenduplizierungsprüfung
Wenn Sie kürzlich Excel-Daten importieren, müssen Sie überprüfen, ob die Daten dupliziert sind:
1. Möchten Sie überprüfen, ob die Excel-Daten selbst dupliziert sind?
2. Sind die Daten in Excel mit den Daten in der Datenbank dupliziert?
1. Es gibt folgende Möglichkeiten, um zu überprüfen, ob die Daten in Excel wiederholt werden:
1. Verwenden Sie die Select-Anweisung, um die Daten in der Tabelle zu filtern (hier weggelassen, Sie können sich auf Teil 2 beziehen).
2. Verwenden Sie eine for-Schleife zur manuellen Überprüfung. Der Code lautet wie folgt:
#region 记录Excel中的重复列 /// <summary> /// 记录Excel中的重复列 /// </summary> /// <param name="dt">需要获取重复列的表</param> /// <returns>提示重复信息</returns> private string GetDistinctTable(DataTable dt) { //DataTable dtClone = dt;这种方式是错误的,因为这种情况,修改dtClone的同时dt也会被修改。 DataTable dtClone = dt.Clone(); ; string vsSubAcctNo = string.Empty; string vsAcctNo = string.Empty; string repeatExcel = string.Empty; string vsTransDate = string.Empty; for (int i = dtClone.Rows.Count - 1; i >= 0; i--) { vsSubAcctNo = dtClone.Rows[i][4].ToString().Trim(); vsAcctNo = dtClone.Rows[i][1].ToString().Trim(); vsTransDate = dtClone.Rows[i][8].ToString().Trim(); dtClone.Rows[i].Delete(); dtClone.AcceptChanges(); for (int j = dtClone.Rows.Count - 1; j >= 0; j--) { if (vsSubAcctNo == dtClone.Rows[j][4].ToString().Trim() && vsAcctNo == dtClone.Rows[j][1].ToString().Trim() && vsTransDate == dtClone.Rows[j][8].ToString().Trim()) { //如果重复了,进行记录 repeatExcel += "第" + (i + 1).ToString() + "行\r\n"; break; } } } return repeatExcel; } #endregion
Kleiner Hinweis:
Klonen sollte in Kopieren geändert werden
2. Es gibt folgende Möglichkeiten zu überprüfen, ob die Daten in Excel mit den Daten in der Datenbank dupliziert werden:
1. Durchlaufen Sie die Tabelle und Überprüfen Sie jedes Datenelement in der Datenbank und wiederholen Sie es.
Diese Methode eignet sich für Situationen, in denen die Daten in der Tabelle relativ klein sind (innerhalb von 100) und die Vergleichstabelle in der Datenbank sehr groß ist. Denn diese Methode erfordert bei jedem Datenvergleich eine Verbindung zur Datenbank und die Ausführung von Abfragen, was sehr zeitaufwändig ist.
Nach einem allgemeinen Test sind 2.000 Daten in Excel vorhanden. Allein die Abfrage in der Datenbank dauert 7 Minuten und 40 Sekunden oder 4601000 Millisekunden (ms).
Tatsächlich dauert es 2.300,5 Millisekunden. Bei Verwendung 2 werden 2.000 Artikel importiert, was weniger zeitaufwändig ist als bei Methode 1, bei der 100 Artikel importiert werden.
2. Fügen Sie die zu vergleichenden Tabellendaten in der Datenbank in einen Datensatz ein, durchlaufen Sie die Tabelle und prüfen Sie, ob alle Daten im Datensatz dupliziert sind. Der Code lautet wie folgt:
strTemp = "AcctNo='" + obZH.ToString() + "' and TransDate='" + obRQ.ToString() + "' and SubAcctNo='" + obDFZH.ToString() + "'"; rowsTemp = dsTemp.Tables[0].Select(strTemp); if (rowsTemp.Length>0) { //如果重复了,进行记录 repeatDj += "第" + v.ToString() + "行\r\n"; }
Das Obige ist der Inhalt der C#-Excel-Datengewichtsüberprüfung und der Tabellendatengewichtsüberprüfung Inhalt, achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!