Pergunta : Cópia maioria do SQL - importando a lima de CSV e os valores nulos que aparecem

Cada mês nós output um spreadsheet dos números de cliente e da outra informação de cliente que são processados com uma aplicação sozinha do carrinho de vb.net e importados em uma base de dados do SQL. Até este mês, nós não tivemos nenhuma edição com este processo da importação. Entretanto, observou-se este mês que quando o número de cliente passou 20xxxxxxxx que importou dentro enquanto um ZERO em vez com do cliente number.

Originally I pensou ele era um tipo de dados edição. Eu tive original o campo de número do cliente setup como numérico (18.0).  Eu tentei então o int, mas ainda tive a edição. Eu tentei Varchar (50) e ainda tive a edição. Eu igualmente verific então meses precedentes e ver aonde os números de cliente maiores do que 20xxxxxxxx vieram perfeitamente na multa. De modo que as réguas para fora um tipo de dados edição tanto quanto eu sou diferença de concerned.

The somente este mês sejam nosso spreadsheet cresçam bastante e nós somos até 676 registros. É no 169th registro que o número de último cliente aparece e o 170th registro é quando anula começam a aparecer. Entretanto, o descanso dos campos para os registros após 170 vem na multa. É apenas o número de cliente field.

I veio através de algum borne em um outro local, de que mencionado sobre a cópia maioria que não trabalha para limas maiores de .csv e aquele anula seria importado aleatòria um pouco do que o valor. Naturalmente, agora eu não posso encontrar o borne para provê-lo aqui. Não havia nenhuma resposta válida real à edição da pessoa que mim encontrou useful.

Finally à pergunta, se usando SQLBulkCopy tem limitações com respeito a importar limas de .csv, o que está uma outra aproximação para começ este spreadsheet importado corretamente na tabela do SQL? Ou há algo que eu falto em meu código que resolveria esta edição? a função ImportCSVBulk do

Public (ByVal SQLTableName como a corda, ByVal CSVFile como a corda, ByVal SheetName como a corda) enquanto Boolean
'cria o strings
CSVConnString não ofuscante da conexão como sqlConnString não ofuscante da corda = do BuildCSVConnString (CSVFile) .ToString
como a corda = o BuildSQLConnString.ToString

'setup o connection
Using CSVConn como instalação nova do
'o object
do comando de CSV escurece CSVCmd enquanto o
de Odbc.OdbcCommand (“selecionar * de” & SheetName & “.csv”, CSVConn) 'abre o
do connection
CSVConn.Open de Excel () 'setup que o DataReader
CSVRead não ofuscante como Odbc.OdbcDataReader = CSVCmd.ExecuteReader
'de Odbc.OdbcConnection (CSVConnString) o SQLBulkCopy
Using bulkCopy como o
de SqlBulkCopy (sqlConnString) 'ajustou o table
bulkCopy.DestinationTableName = SQLTableName
Try
'redige os dados ao prendedor do retorno do
'Success
True
do server
bulkCopy.WriteToServer (CSVRead) ex como o
'Error
False
Finally
'de Exception
MsgBox (Err.Number &” “& Err.Description) próximo a extremidade de Try
do fim de If
do fim do
de DataReader
se não CSVRead.IsClosed Then
CSVRead.Close () Using 'a extremidade do bulkCopy
da extremidade Using 'a extremidade Function

Let de CSVConn
do fim mim sabe se acessórios do spreadsheet e ou à tabela ajudaria. Eu não posso emitir a informação real, mas eu posso dar-lhe uma amostra do layout.

Thanks adiantado para toda a ajuda que você puder provide.



class= do

Resposta : Cópia maioria do SQL - importando a lima de CSV e os valores nulos que aparecem

Algumas coisas a tentar:

1. Abrir a lima de CSV no bloco de notas um pouco Excel e ver se há qualquer coisa estranho naquelas linhas. Excel aplicará o formato que pode esconder a edição.

2. Cortar que os dados para baixo ao th 20xxxx alinham e importam apenas aquele e se certificam de que são fazer com aquele (um pouco do que a linha número)


Há muitos métodos alternativos a importar limas de CSV.

BCP.EXE (uma linha de comando ferramenta que venha com usuário do SQL)
INSERÇÃO MAIORIA (uma indicação de T-SQL que seja essencialmente o mesmo asBCP salvo que você o funcionam dentro do usuário do SQL
SSIS (serviços da integração do SQL - uma ferramenta de ETL que esteja provavelmente sobre a parte superior com esta finalidade)

Há três coisas desnecessárias que estão adicionando atualmente às edições possíveis:

1. Uma lima de CSV é uma lima de texto reta. Não é necessário abri-la em Excel OU usar uma conexão de ODNC para abri-la.
2. A de jogo. A rede app na mistura adiciona ao número de coisas que podem ir mal.

Se eu a fazia eu apenas usaria BCP.EXE para carregá-lo (embora pode ser um bocado de uma dor para setup a primeira vez)
Outras soluções  
 
programming4us programming4us