Usuário com melhor resposta
erro de connection string

Pergunta
-
Bom dia,
Criei uma tela windowsform para importar um arquivo de texto e exibir o conteúdo em uma gridview. o problema é que, quando eu seleciono o arquivo para abrir, recebo uma mensagem de erro na inicialização da connectionstring.
o que eu configurei errado no código?
Muito obrigado.
private void btnSelecionarArquivo_Click(object sender, EventArgs e) { OpenFileDialog vAbreArq = new OpenFileDialog(); vAbreArq.Filter = "Arquivo de Texto (*.txt)|*.txt"; vAbreArq.RestoreDirectory = true; vAbreArq.Title = "Selecione o Arquivo"; vAbreArq.DefaultExt = "Arquivo de Texto (*.txt)|*.txt"; if (vAbreArq.ShowDialog() == DialogResult.OK) { TBxCaminhoEArquivo.Text = vAbreArq.FileName; DataSet ds = new DataSet(); string diretorio = System.IO.Path.GetDirectoryName(vAbreArq.FileName); OleDbConnection conexao = new OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Text;HDR=NO;FMT=Delimited\"", diretorio)); using (conexao) ; try { string teste = System.IO.Path.GetFileName(vAbreArq.FileName); OleDbDataAdapter da = new OleDbDataAdapter("Select * From " + teste, conexao); this.Cursor = Cursors.WaitCursor; da.Fill(ds); DGVParceirosImportados.DataSource = ds.Tables[0]; DGVParceirosImportados.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader; } catch (Exception ex) { MessageBox.Show("Erro ao acessar os dados: " + ex.Message); } finally { conexao.Close(); this.Cursor = Cursors.Default; } BtnImportarWebshare.Enabled = true; LblQuantidadeLinhas.Text = DGVParceirosImportados.RowCount.ToString(); } }
Respostas
-
Amigo, remova a linha
using (conexao) ;
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 12 de março de 2013 17:06
- Marcado como Resposta joaoluizbt terça-feira, 12 de março de 2013 18:48
-
li em um lugar na internet, que o caminho do arquivo não pode conter pontos, senão ele dá erro... eu coloquei o arquivo no c: e ele conseguiu ler... mas só pegou a primeria coluna. o texto é separado por ponto e vírgula.
quando eu coloco "Delimited" no extended properties, ele não reconhece a separação?
- Marcado como Resposta joaoluizbt terça-feira, 12 de março de 2013 18:48
Todas as Respostas
-
Amigo, remova a linha
using (conexao) ;
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 12 de março de 2013 17:06
- Marcado como Resposta joaoluizbt terça-feira, 12 de março de 2013 18:48
-
Cara,
Precisa entender o conceito de using antes de aplica-lo ao seu código:
http://www.devmedia.com.br/entendendo-o-bloco-using-no-c/16967
http://www.codeproject.com/Articles/6564/Understanding-the-using-statement-in-C
Quando você fez :
using (conexao) ;
Você encerrou a sua conexão a partir das próximas linhas do código. Quer utilizar o using então faça isso:
using(OleDbConnection conexao = new OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Text;HDR=NO;FMT=Delimited\"", diretorio))) { try { string teste = System.IO.Path.GetFileName(vAbreArq.FileName); OleDbDataAdapter da = new OleDbDataAdapter("Select * From " + teste, conexao); this.Cursor = Cursors.WaitCursor; da.Fill(ds); DGVParceirosImportados.DataSource = ds.Tables[0]; DGVParceirosImportados.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader; } catch (Exception ex) { MessageBox.Show("Erro ao acessar os dados: " + ex.Message); } finally { conexao.Close(); this.Cursor = Cursors.Default; } BtnImportarWebshare.Enabled = true; LblQuantidadeLinhas.Text = DGVParceirosImportados.RowCount.ToString(); }
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 12 de março de 2013 17:11
-
-
Cola o erro aqui por favor
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
-
-
é o nome do arquivo que quero importar:
"TXT DE ITENS OU MAIS.TXT"
inclusive tentei colocar "_" entre os espaços das palavras do nome do arquivo, mas dá o mesmo erro.- Editado joaoluizbt terça-feira, 12 de março de 2013 18:38
- Marcado como Resposta joaoluizbt terça-feira, 12 de março de 2013 18:43
- Não Marcado como Resposta joaoluizbt terça-feira, 12 de março de 2013 18:43
-
li em um lugar na internet, que o caminho do arquivo não pode conter pontos, senão ele dá erro... eu coloquei o arquivo no c: e ele conseguiu ler... mas só pegou a primeria coluna. o texto é separado por ponto e vírgula.
quando eu coloco "Delimited" no extended properties, ele não reconhece a separação?
- Marcado como Resposta joaoluizbt terça-feira, 12 de março de 2013 18:48