Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DarkDucke

Passando parametros para consulta mysql em C#

Recommended Posts

galera, acho que to fazendo tudo certo, não da erro nenhum, passa por todo o codigo, mais me retorna sempre EOF, como se nao encontrasse os registros na tabela...podem dar uma olhada neste codigo por favor?protected void LinkButton1_Click(object sender, EventArgs e) {string strConnection = ConfigurationManager.AppSettings["ConMySql"];OdbcConnection conexao = new OdbcConnection(strConnection); String SQL = "SELECT COD, NOME FROM USERS WHERE LOGIN = @PLOGIN AND SENHA = @PSENHA"; OdbcCommand comando = new OdbcCommand(SQL, conexao);//criando os parametros passando o nome e valor para cada umOdbcParameter[] param = new OdbcParameter[2]; param[0] = new OdbcParameter("@PLOGIN", EdLogin.Text);param[1] = new OdbcParameter("@PSENHA", EdSenha.Text); //jogando os parametros no comando sqlcomando.Parameters.Add(param[0]);comando.Parameters.Add(param[1]);//abrindo a conexaoconexao.Open();OdbcDataReader r = comando.ExecuteReader();if (r.HasRows) {LbSts.Text = "Seja bem vindo: " + r["COD"].ToString(); }else{LbSts.Text = "Usuário não encontrado"; }r.Close();conexao.Close();} Agradeço sdesde já!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, consegui passar os parametros, estou usando MySql.Data.MySqlClient;meu código está assim:protected void LinkButton1_Click(object sender, EventArgs e){string strConnection = ConfigurationManager.AppSettings["ConMySql"];MySqlConnection conexao = new MySqlConnection(strConnection);String SQL = "SELECT COD, NOME FROM USERS WHERE LOGIN = ?PLOGIN AND SENHA = ?PSENHA";MySqlCommand comando = new MySqlCommand(SQL, conexao);comando.Parameters.AddWithValue("?PLOGIN", EdLogin.Text).Direction = ParameterDirection.Input;comando.Parameters.AddWithValue("?PSENHA", EdSenha.Text).Direction = ParameterDirection.Input;//abrindo a conexaoconexao.Open();MySqlDataReader r = comando.ExecuteReader();if (r.HasRows){LbSts.Text = "Seja bem vindo: " + r[0].ToString();}else{LbSts.Text = "Usuário não encontrado";}r.Close();conexao.Close();}o problema é aque agora quando chega na linha LbSts.Text = "Seja bem vindo: " + r[0].ToString();me retorna este erro:An exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll but was not handled in user codeAdditional information: Invalid attempt to access a field before calling Read()seu eu usar a classe ODBCConnection e ODBCCommand e se passar os parametros com "?" em vez de "@" ele me retorna um erro no sql, como se bugasse ele, e se eu usar a classe ODBC passando parametros com "@" ele nao da erro soh q nunca encontra o registro....o negocio eh usaro o MySql.Data.MySqlClient soh q da esse erro quando vou ler os registros....alguem me da um help ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nunca usei o mysqldatareader, se fosse o sqldatareader tem que chamar a função READ antes de ler, ficaria +ou- assim:

 

if (r.HasRows){   r.Read();   LbSts.Text = "Seja bem vindo: " + r[0].ToString();

veja: http://forum.imasters.com.br/index.php?showtopic=220811

Compartilhar este post


Link para o post
Compartilhar em outros sites

nunca usei o mysqldatareader, se fosse o sqldatareader tem que chamar a função READ antes de ler, ficaria +ou- assim:

if (r.HasRows){   r.Read();   LbSts.Text = "Seja bem vindo: " + r[0].ToString();
veja: http://forum.imasters.com.br/index.php?showtopic=220811
voce nunca usou o mysqldatareader mais já usou a base de dados mysql?se sim como passo os parametros para a conulta usando o odbccommand, pq tem q ser por odbc ou mysqlcomo te disse usando o mysqlcoomand passando o paramentro na conulta sql com "?" antes da palavra da certo, soh dava esse problema ai, com o odbccoomand ele nao aceita esse "?" antes do parametro tem q ser "@" como do SQL SERVER soh q ai nunca retorna dados, nao da erro, soh q nao retorna dados... obrigado!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

com o mySQl eu usei só o MySql.DAB, creio que tu ta utilizando o MySql.Data

mas os parametros eu sempre usei "?" nunca teve problemas...

 

mas tipo assim essa dica que te passei acima do r.Read(); você chegou a testar? não funcionou? que erro voltou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está tudo certo!o r.Read(); funcionou e os parametros passa com "?" mesmotipo interbase = ":", sql server = "@", mysql = "?" e assim por diante neh...vlws pela ajuda aE!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está tudo certo!o r.Read(); funcionou e os parametros passa com "?" mesmotipo interbase = ":", sql server = "@", mysql = "?" e assim por diante neh...vlws pela ajuda aE!!!

é isso ae msm (mysql = "?") http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.