Question : Copie en bloc de SQL - importation du dossier de CSV et d'apparaître de valeurs nulles

Tous les mois nous produisons un bilan des numéros de compte et de toute autre information de compte qui sont traités par application de stand de vb.net une seule et importés dans une base de données de SQL. Jusqu'à ce mois, nous n'avons eu aucune issue avec ce processus d'importation. Cependant, on l'a noté ce mois que quand le numéro de compte a passé 20xxxxxxxx qu'il a importé dedans pendant qu'une NULLE au lieu de avec le compte number.

Originally I pensait il était un type de données issue. J'ai à l'origine fait installer le champ de numéro de compte comme numérique (18.0).  J'ai alors essayé l'international, mais ai toujours eu l'issue. J'ai essayé Varchar (50) et ai toujours eu l'issue. J'également ai alors vérifié des mois précédents et vois où les numéros de compte plus grands que 20xxxxxxxx sont venus dans parfaitement l'amende. De sorte qu'élimine un type de données issue dans la mesure où je suis différence de concerned.

The seulement ce mois soit notre bilan se soit développé beaucoup et nous sommes jusqu'à 676 disques. C'est au 169th disque que le numéro de dernier compte apparaît et le 170th disque est quand annule commencent à apparaître. Cependant, le reste des champs pour les disques après 170 viennent dans l'amende. C'est juste le numéro de compte field.

I a trouvé un certain poteau sur un autre emplacement, cela mentionné au sujet de la copie en bloc ne fonctionnant pas pour de plus grands dossiers de .csv et cela annule serait aléatoirement importé plutôt que la valeur. Naturellement, maintenant je ne peux pas trouver le poteau pour le mettre en référence ici. Il n'y avait aucune vraie réponse valide à l'issue de la personne que j'a trouvé useful.

Finally à la question, si en utilisant SQLBulkCopy a des limitations en vue d'importer des dossiers de .csv, ce qui est une autre approche pour obtenir ce bilan correctement importé dans le Tableau de SQL ? Ou y a-t-il quelque chose que je suis absent en mon code qui résoudrait ce problème ? la fonction ImportCSVBulk (ByVal SQLTableName comme corde, ByVal CSVFile comme corde, ByVal SheetName du

Public comme corde) pendant que Boolean
'créent le strings
faible CSVConnString de raccordement comme faible sqlConnString de corde = de BuildCSVConnString (CSVFile) .ToString
comme corde = BuildSQLConnString.ToString

'a installé le connection
Using CSVConn pendant que nouvelle installation du
'l'object
de commande de CSV obscurcissent CSVCmd pendant que le nouveau
d'Odbc.OdbcCommand (« choisir * de » et SheetName et « .csv », CSVConn) 'ouvrent le
du connection
CSVConn.Open d'Excel () 'installer que le DataReader
faible CSVRead en tant qu'Odbc.OdbcDataReader = CSVCmd.ExecuteReader
'd'Odbc.OdbcConnection (CSVConnString) le SQLBulkCopy
Using bulkCopy pendant que le nouveau
de SqlBulkCopy (sqlConnString) 'plaçait le table
bulkCopy.DestinationTableName = SQLTableName
Try
'écrivent les données crochet de retour du
au 'Success
True
du server
bulkCopy.WriteToServer (CSVRead) ex pendant que
'Error
False
Finally
'd'Exception
MsgBox (Err.Number et le » « et Err.Description) étroit l'extrémité de Try
de fin d'If
de fin du
de DataReader
sinon CSVRead.IsClosed Then
CSVRead.Close () Using 'l'extrémité du bulkCopy
d'extrémité Using 'l'extrémité Function

Let de CSVConn
de fin je savent si des attachements du bilan et ou à la table aiderait. Je ne peux pas envoyer la vraie information, mais je peux te donner un échantillon du layout.

Thanks à l'avance pour n'importe quelle aide que vous pouvez provide.



class= de

Réponse : Copie en bloc de SQL - importation du dossier de CSV et d'apparaître de valeurs nulles

Quelques choses à essayer :

1. Ouvrir le dossier de CSV dans le bloc - notes plutôt Excel et voir s'il y a quelque chose étrange dans ces lignes. Excel appliquera le formatage qui peut cacher l'issue.

2. Couper que les données vers le bas au Th 20xxxx rayent et importent juste cela et s'assurent qu'elles sont de faire avec cela (plutôt que la ligne nombre)


Il y a beaucoup de méthodes alternatives à importer des dossiers de CSV.

BCP.EXE (une ligne de commande outil qui vient avec le serveur de SQL)
INSERTION EN BLOC (un rapport de T-SQL qui est essentiellement le même asBCP sauf que vous le courent du serveur de SQL
SSIS (services d'intégration de SQL - un outil d'ETL qui est probablement au-dessus du dessus à cette fin)

Il y a trois choses inutiles qui s'ajoutent actuellement aux issues possibles :

1. Un dossier de CSV est un dossier droit des textes. Il n'est pas nécessaire de l'ouvrir dans Excel OU d'employer un raccordement d'ODNC pour l'ouvrir.
2. A de lancement. Le filet $$etAPP dans le mélange s'ajoute au nombre de choses qui peuvent aller mal.

Si je le faisais j'avais l'habitude juste BCP.EXE pour le charger (cependant ce peut être un peu d'une douleur pour installer la première fois)
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us