Como passar paramentros no cSharp

22/11/2012

0

Galera tenho metodos que retorna um table mas quando tento passar uma proc do sql com parametros nao da certo

--Aqui a classe
public DataTable Selecionar(string sql)
{
SqlConnection conexao = new SqlConnection(_Conexao);
SqlCommand comando = conexao.CreateCommand();
comando.CommandText = sql;
SqlDataAdapter adaptador = new SqlDataAdapter(comando);
DataTable tabela = new DataTable();
conexao.Open();
adaptador.Fill(tabela);
conexao.Close();
return tabela;
}


Aqui o metodo utilizado no webform
Conexao cnn = new Conexao();
GridView1.DataSource = cnn.Selecionar("prc_movimento parametro1, parameto2");
GridView1.DataBind();

Alguem poderia me dizer como se passa esses dois parametros ?
Carlos Faria

Carlos Faria

Responder

Posts

22/11/2012

Pjava

Veja se isso te ajuda. Veja tudo aqui: http://www.macoratti.net/09/03/aspn_usp.htm

protected void Page_Load(object sender, EventArgs e)
{
PopulaGrid();
}

public void PopulaGrid()
{

DataSet ds = new DataSet();
SqlConnection conexao= null;

try
{
conexao = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

SqlDataAdapter da;
da = new SqlDataAdapter("exibeContatos", conexao );
da.SelectCommand.CommandType = CommandType.StoredProcedure;

conexao .Open();
da.Fill(ds);

GridView1.DataSource = ds;
GridView1.DataBind();
}
catch (Exception ex)
{
lblmsg.Text = ex.Message;
}
Finally
{
conexao.Close();
}
}
Responder

22/11/2012

Joel Rodrigues

Regis, para utilizar Stored Procedures com parâmetros, você precisa informar esses valores através da propriedade Parameters do SqlCommand.
Qual erro está dando?
Responder

23/11/2012

Carlos Faria

Na verdade eu já tenho um método pronto para popular o gridview será que nao teria uma forma mais fácil de se fazer isso


Conexao cnn = new Conexao();
GridView1.DataSource = cnn.Selecionar("stored_procedure + parametro ");
GridView1.DataBind();
Responder

23/11/2012

Carlos Faria

amigo vc teria um exemplo de como se fazer isso ?
Responder

23/11/2012

Joel Rodrigues

Cara, para usar parâmetro, seria mais ou menos o seguinte (desconsidere erros de digitação e sintaxe, não estou testando esse código):
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "usp_Selecionar_Cientes";
sqlCmd.Parameters.AddWithValue("CODIGO", 123);

//...preencher uma tabela com o DataAdapter


Boa sorte.
Responder

23/11/2012

Joel Rodrigues

Regis, nunca testei, mas experimente continuar fazendo da forma como está, mas alterando o CommandType para StoredProcedure, como eu fiz acima.
Se não der, aí você usa os parâmetros.
Responder

24/11/2012

Carlos Faria

Quase lá


conexao cnn = new conexao () ;
SqlCommand sqlCmd = new SqlCommand() ;

sqlCmd.CommandType = CommandType.StoredProcedure;

GridView1.DataSource = sqlCmd.CommandText = "prc_movimento_ano";

sqlCmd.Parameters.AddWithValue("Ds_Ano",2012);

GridView1.DataBind();

A procedure rodou porem ao inves de trazer o movimento do ano no gridview ela trouxe a string "prc_movimento_ano" uma letra em cada row do gridView
Responder

27/11/2012

Joel Rodrigues

O problema está aqui:
GridView1.DataSource = sqlCmd.CommandText = "prc_movimento_ano";

Você passou um string pro DataSource. Tente fazer:
GridView1.DataSource = sqlCmd.ExecuteReader();

Se não der, use um DataAtapter para preencher um DataTable e passar essa tabela para o GridView.
Boa sorte.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar