Lors de l'importation récente de données Excel, vous devez vérifier si les données sont dupliquées :
1. Vous souhaitez vérifier si les données Excel elles-mêmes sont dupliquées ?
2. Les données dans Excel sont-elles dupliquées avec les données de la base de données ?
1. Les moyens de vérifier si les données dans Excel sont répétées sont :
1. Utilisez l'instruction select pour filtrer les données dans le tableau (omise ici, vous pouvez vous référer à la partie 2).
2. Utilisez une boucle for pour vérifier manuellement. Le code est le suivant :
#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
Petite note :
le clone doit être modifié pour copier
2. Les moyens de vérifier si les données dans Excel sont dupliquées avec les données de la base de données sont :
1. Parcourez le tableau et vérifiez chaque élément de données dans la répétition de la base de données.
Cette méthode convient aux situations où les données du tableau sont relativement petites (moins de 100) et le tableau de comparaison dans la base de données est très volumineux. Car cette méthode nécessite de se connecter à la base de données et d’exécuter des requêtes à chaque fois qu’une donnée est comparée, ce qui prend beaucoup de temps.
Après un test général, il y a 2 000 données dans Excel. Une simple requête dans la base de données prend 7 minutes et 40 secondes, soit 4601 000 millisecondes (ms). Environ une donnée prend 2 300,5 millisecondes
En fait, l'utilisation 2 importe 2 000 articles, ce qui prend moins de temps que la méthode 1, qui importe 100 articles.
2. Récupérez les données de la table à comparer dans la base de données dans un ensemble de données, parcourez la table et vérifiez la duplication de chaque élément de données dans l'ensemble de données :
.
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"; }
Ce qui précède est le contenu de la vérification du poids des données C# Excel et de la vérification du poids des données du tableau. Pour plus d'informations. contenu, veuillez faire attention au site Web PHP chinois (www.php.cn) !