EXECUTAR UMA CONSULTA DO ACCESS USANDO C#

EIADVANCED 04/04/2016 09:46:38
#460393
Olá pessoal

Como executar uma consulta [Ô]Criar Tabela[Ô] do ACCESS usando c#

No aguardo
Pierre
SINCLAIR 04/04/2016 10:20:39
#460395
EIADVANCED,

Indiferente de ser no C# ou qualquer outra linguagem, a query vai rodar no seu banco, no caso Access, portanto será apenas conectar ao banco e executar o comando CREATE TABLE.

Aproveitando, há alguns tópicos que estão longo tempo sem movimento. Você poderia encerrá-los ou dar continuidade, por gentileza?

http://vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=457663&pagina=1 (15/02/2016)
http://vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=362327&pagina=1 (14/01/2011)
http://vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=362192&pagina=1 (13/01/2011)
http://vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=355910&pagina=1 (26/01/2010)

A sintaxe do Create Table, para o Access, você encontra facilmente em uma busca no google. Poderia colocar alguns links aqui, mas se você pesquisar irá direto aos links que atendam melhor a sua pesquisa.

Tudo de bom.

EIADVANCED 04/04/2016 10:58:26
#460398
Euzébio, bom dia

A consulta já está pronta no access que faz a criação da tabela, preciso executar ela pelo C# é possível?

No aguardo,
Pierre
SINCLAIR 04/04/2016 11:07:37
#460399
Pierre,

Sim é possível. Em qualquer linguagem.

Se sua query que cria o a tabela está pronta, basta executá-la.

Em qualquer local de seu código onde você executa comandos como [Ô]select * from...[Ô] você pode executar query [Ô]Create Table nome_da_sua_tabela (lista de campos com tipos de dados)[Ô]. O procedimento é o mesmo, só muda a query.

Coloque aqui o seu código de conexão ao banco e o código com a query de criação da tabela que fica mais fácil ajudar.
EIADVANCED 04/04/2016 13:56:53
#460404
Euzébio,

Segue código abaixo, em anexo envio tela de erro


private OleDbTransaction transacao;

public void LeAccessCriaTeste(string caminho, int clienteid)
{
OleDbCommand comandoSQL;
OleDbConnection conecta;

DataTable dt = new DataTable();

conecta = new OleDbConnection(@[Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] + caminho + [Ô];[Ô]);
conecta.Open();

this.transacao = conecta.BeginTransaction();

try
{
const string DatabasePath = @[Ô]~\\banco\\Dimed.mdb[Ô]; //Campo completo
const string ConnectionString = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] + DatabasePath;

using (OleDbConnection cnn = new OleDbConnection(ConnectionString))
{
string query = [Ô]SELECT * FROM CriarApontamento[Ô]; //Action querry

using (OleDbCommand cmd = new OleDbCommand(query, cnn))
{
cnn.Open();
using (OleDbDataReader reader = cmd.ExecuteReader())
{
string getid = reader.GetString(1); //Gera erro mesmo sendo um select numa tabela comum
}
}
}

conexao.FecharConexao();
}
catch (Exception ex)
{
throw ex;
}

}


Obrigado,
Pierre
SINCLAIR 04/04/2016 16:25:36
#460407
Pierre,

O título de seu post e a mensagem inicial eram de como criar uma tabela no Access.

Com o desenvolvimento do tópico, você narrou que o Create Table já tinha pronto e, por fim, postou seu código, conforme solicitado.

Seu problema é de conexão.

Infelizmente aqui só tenho o PHP, não tenho o VS para poder te ajudar neste momento.
DAMASCENO.CESAR 04/04/2016 16:48:13
#460409
Citação:

const string DatabasePath = @[Ô]~\\banco\\Dimed.mdb[Ô]; //Campo completo



verifique as barras do caminho [Ô]\[Ô]
ACCIOLLY 04/04/2016 16:55:12
#460412
Por que você chama o SINCLAIR de Euzébio???
Em todo caso segue uma classe de conexão:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace nomeDoSeuProjeto //coloque o nome do seu projeto aqui
{
class Conexao
{
//Caminho do Banco de dados
private string DataSource;

public Conexao(string _DataSource)
{
this.DataSource = _DataSource;
}

//Metodo de Pesquisa (Select)
public DataTable Pesquisar(string SQL)
{
DataTable dados = new DataTable();

//inicia tratamento de erros
try
{
dados.Rows.Clear();
OleDbConnection conexao = new OleDbConnection(DataSource);
conexao.Open();

OleDbCommand comando = new OleDbCommand(SQL, conexao);
OleDbDataAdapter adaptador = new OleDbDataAdapter(comando);
adaptador.Fill(dados);

conexao.Close();
}
catch (Exception ex)
{
MessageBox.Show([Ô]Erro: [Ô] + ex.Message);
}

return dados;
}

//Método para INSERT, UPDATE ou DELETE
public void CRUD(string SQL)
{
try
{
OleDbConnection conexao = new OleDbConnection(DataSource);
conexao.Open();
OleDbCommand comando = new OleDbCommand(SQL, conexao);
comando.ExecuteNonQuery();

conexao.Close();
}
catch (Exception ex)
{
MessageBox.Show([Ô]Erro: [Ô] + ex.Message);
}
}
}
}


Como falei logo acima essa é uma classe de conexão ok! Daqui pra frente utilize essa classe em outras classes ou em forms para manipular o banco. Usando a OOP instancie a classe acima dessa forma:

Conexao conn = new Conexao(@[Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Teste    este.accdb[Ô]);

Isso levando em consideração um banco em access 2007 (accdb) se for um banco mdb já muda um pouco

O método de pesquisa é apenas para o select. Já o crud serve pro resto! inclusive o create table! Observe:

conn.CRUD([Ô]CREATE TABLE alunos([id] AUTOINCREMENT PRIMARY KEY, [nome] char(255) NOT NULL, [idade] int NOT NULL)[Ô]);


Daí pra frente só brincar de SQL
SINCLAIR 04/04/2016 16:55:49
#460413
O colega DAMASCENO.CESAR está certo.

Parece haver barras demais, onde aponta o caminho do MDB.

O colega ACCIOLLY te deu o que precisas, prontinho para uso.

Ao fechar o tópico, com todo respeito à DAMASCENO.CESAR, nosso boníssimo colega, e com respeito a mim mesmo, mas não esqueça de pontuar o ACCIOLLY e, peço, encerrar os demais tópicos que ficaram em aberto.


Tudo de bom.
EIADVANCED 05/04/2016 13:37:35
#460467
Obrigado pessoal,

Vou fazer os testes e informo aqui

Att.
Pierre
PERCIFILHO 05/04/2016 13:53:23
#460469
Pessoal, se é C#, para indicar o caminho de um arquivo, realmente são duas barras, se colocar uma só, o visual studio acusará um erro;
Até mais.
Página 1 de 2 [16 registro(s)]
Faça seu login para responder