none
Passar parametro do c# para uma query RRS feed

  • Pergunta

  • Bom Dia!

    Tenho uma aplicação em c# utilizando o banco access.

    Fiz um relatorio em access e preciso passar como parametro para essa consulta uma valor que está na variavel na aplicação.

    Ex:

    Query Banco

    Select Nome, Matricula from aluno where Nome = VarAplicacao

    Chamo esse relatorio da seguinte maneira no c# :

    msa.applicantion.docmd.openreport("Rel_Aluno", Microsoft.Office.Interop.Access.Acview.acviewpreview);

    mas não sei como passar o parametro para a minha consulta no banco.

    quarta-feira, 12 de fevereiro de 2014 09:50

Respostas

Todas as Respostas

  • Classe para controle do banco de dados:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.OleDb;
    using System.Data;
    
    namespace oo_agenda
    {
        public class Cls_Access
        {
            #region atributos
            // atributos //
            private string string_conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_agenda.mdb;Jet OLEDB:Database Password=diconagenda;";
            public string query_string = "";
            #endregion
    
            #region metodos
            // metodos //
    
            public OleDbDataReader OleDb_data_reader()
            {
                OleDbConnection conexao = new OleDbConnection();
                conexao.ConnectionString = this.string_conexao;
                conexao.Open();
    
                OleDbCommand comando = new OleDbCommand();
                comando.CommandText = query_string;
                comando.Connection = conexao;
    
                OleDbDataReader reader = comando.ExecuteReader();
    
                return reader;
            }
    
            public DataTable OleDb_data_adapter()
            {
                DataTable dtb = new DataTable();
    
                OleDbConnection conexao = new OleDbConnection();
                conexao.ConnectionString = this.string_conexao;
                try
                {
                    conexao.Open();
                    OleDbDataAdapter adapter = new OleDbDataAdapter(query_string, conexao);
    
                    adapter.Fill(dtb);
    
                    conexao.Dispose();
                    adapter.Dispose();
                }
                catch
                {
                }
                return dtb;
            }
    
            public void execute_non_query()
            {
                OleDbConnection conexao = new OleDbConnection();
                conexao.ConnectionString = this.string_conexao;
                OleDbCommand comando = new OleDbCommand();
                comando.Connection = conexao;
                try
                {
                    comando.ExecuteNonQuery();
                }
                catch
                {
                }
                comando.Dispose();
            }
    
            #endregion
        }
    }
    

    Chamada na classe:

    int codigo = 35;
    Cls_Access ac = new Cls_Access();
    ac.query_string = "select * from tb_cliente where cod = '" + codigo + "';";
    
    DataTable dtb = ac.OleDb_data_adapter();
    
    DataGridView.DataSoucer = dtb;

    Qualquer duvida pode perguntar ;-)

    Se isso resolver seu problema, por favor, não esqueça de marcar como resposta.

    quarta-feira, 12 de fevereiro de 2014 10:21
  • a minha query está no banco, queria apenas pegar a minha variavel que esta na aplicação e jogar para o parametro que esta na query
    quarta-feira, 12 de fevereiro de 2014 10:44
  • Ola,

    Existe uma propriedade Parameters no seu OleDbCommand para exatamente para isso.

    Da uma olhada nessa materia explicando:

    http://uilque.wordpress.com/2011/12/06/atualizando-banco-de-dados-ms-access-usando-parametros-asp-net/

    http://msdn.microsoft.com/pt-br/library/system.data.oledb.oledbparameter%28v=vs.110%29.aspx


    Microsoft Community Contributor


    • Editado Rui SantosModerator quarta-feira, 12 de fevereiro de 2014 11:02
    • Sugerido como Resposta Dietrich Prg quarta-feira, 12 de fevereiro de 2014 11:06
    • Marcado como Resposta LetíciaF quarta-feira, 12 de fevereiro de 2014 12:15
    quarta-feira, 12 de fevereiro de 2014 11:01
    Moderador
  • Mto Obrigadaa!
    quarta-feira, 12 de fevereiro de 2014 12:18