Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

colemauro

Ajuda para ligar BD Access a WPF de C#2008

Recommended Posts

colemauro

Boas,

Pretendo ligar uma BD Access 2003 a uma interface em C# (Visual Studio 2008).

Apesar de muita pesquisa ainda não consegui arranjar maneira de conectar à base de dados para depois poder consultar, acrescentar, apagar, alterar informação existente nas tabelas.

Para já tenho o seguinte:

string caminho;
            caminho = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\C#\Projectos\Meus\ConceitoSegCFA\ConceitoSegCFA\CFA_Acesses.mdb;";
            OleDbConnection a = new OleDbConnection(caminho);
            string dbcommand = "SELECT * FROM nome";

Para efeitos de teste queria pegar em todo o conteudo que a query feita ao campo nome apanha, numa listbox só para ver se o consigo fazer.

Quando depois coloco

listBox1.Text = Convert.ToString(b.Fill(dset));

diz-me que não consegue converter Int para String.

Tenho vários desafios à frente, mas para já só queria poder pegar em cada campo de uma dada tabela e colocar nas texbox, listbox, datagridview, ... que venha a criar.

Acreditem que já tenho feito muito pesquisa (má feita eu sei, pois ainda não me dessenrrasquei).. mas até agora sem resultados.

Tentei encontrar uma pequena aplicação para download, que tivesse algo que me iluminasse, mas nada para já.

Abraço

Share this post


Link to post
Share on other sites
saramgsilva

Como estás a fazer ligação a uma base de dados, penso que poderás passar os teus dados para um dataset.

Depois de ter os dados no teu dataSet, decerto que vais ter uma tabela que é essa que queres apresentar na listbox,

suponhamos que era a table ->  dataSet.DataTables[0]

defines as seguintes propriedades da listbox:

listbox.DisplayMemberPath="NOMEDACOLUNADATABELA"

listbox.ItemsSource=dataSet.DataTables[0]

E pronto, penso que está pronto a mostrar os dados.

Nota: eu penso que posso mandar um dataTable para os ItemsSource!

Share this post


Link to post
Share on other sites
bioshock

Se queres pegar em todos os nomes e colocá-los numa listbox, seria mais fácil fazeres um cíclo à BD.

Share this post


Link to post
Share on other sites
NovatuX

Deixe-me ver se entendi... Você gostaria de distribuir cada item do formulario em uma tabela do banco mdb??

Pois tua string de conexão ja esta correta.

:P

Share this post


Link to post
Share on other sites
RJ90

Bem, vou-te mostrar aqui como se faz. :P

Fiz agora mesmo isto e penso que está bem explicado como fazer.

gpixk0b73e7uufqlr6v.png

            //Criar Ligação a BD
            OleDbConnection aConnection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\\Users\\Ricardo\\Desktop\\clientes.accdb");

            //Criar Comando
            OleDbCommand aCommand = new OleDbCommand("SELECT dados.nome FROM dados", aConnection);

            try
            {
                //Iniciar Ligação
                aConnection.Open();

                //Criar o 'Leitor de Dados'
                OleDbDataReader aReader = aCommand.ExecuteReader();

                List<string> nomes = new List<string>();

                //Adicionar dados a list 'nomes'
                while (aReader.Read())
                {
                    nomes.Add(aReader.GetString(0));
                }

                //Terminar leitura
                aReader.Close();

                //Terminar ligação
                aConnection.Close();

                //Carregar dados na listBox e na checkedListBox
                listBox1.DataSource = nomes;
                checkedListBox1.DataSource = nomes;
            }
            catch (OleDbException databaseError)
            {
                MessageBox.Show("Erro: " + databaseError);
            }

Ficheiros(BD + Projecto): http://rapidshare.com/files/405088987/carregardados.rar.html

                                        http://www.megaupload.com/?d=FDJGUJQS

Cumprimentos!  ;)


Samsung 700Z5A-S01PT Samsung Ominia W

ᥡ What Else? ᥡ

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.