Usuário com melhor resposta
Verificando se tabela de dataset tem informação desejada.

Pergunta
-
Estou querendo saber se meu dataset contem certa informação, caso sim ele responde de um jeito, caso não, responda de outra. estou fazendo desse jeito como mostro abaixo, mas não está funcionando. quem puder me ajudar eu irei agradecer muito, estou precisando pra um trabalho importante...
dtSet = new DataSet();
conexao = new MySqlConnection("Persist Security Info=false; server=localhost; database=cacambas; uid=root");
conexao.Open();
comando = new MySqlCommand();
comando.Connection = conexao;
comando.CommandType = CommandType.Text;
adaptador = new MySqlDataAdapter("select empresa_nome from empresas where empresa_nome= '" + txtPesquisar.Text + "';", conexao); //criando um obj na memoria e colocando o comando mysql
adaptador.Fill(dtSet, "empresas");
if (dtSet.Tables[0].Columns[0].ToString() == ""+ txtPesquisar.Text +"")
{
MessageBox.Show("Essa empresa ja foi cadastrada.");
}
else
{
MessageBox.Show("Essa empresa ainda nao foi cadastrada. Deseja fazer o cadastro agora?");
}
Respostas
-
Olá Guilherme!
Essa sua condição não está fazendo muito sentido.. A propriedade Columns[] vai retornar a DataColumn, e não o valor que foi lido do banco.. Se você está querendo saber qual valor foi retornado do banco, você precisa utilizar a propriedade Rows:
var empresaRetornada = dtSet.Tables[0].Rows[0][0].ToString();
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Robson William SilvaModerator quinta-feira, 18 de agosto de 2016 12:29
Todas as Respostas
-
Bom dia guilhermetgsm,
Obrigado por sua participação no Fórum MSDN.
Parece que você está tentando comparar um campo .Text com uma string:
" if (dtSet.Tables[0].Columns[0].ToString() == ""+ txtPesquisar.Text +"") "
Tente passar o "txt.Pesquisar.Text" para uma string e aí comparar com "dtSet.Tables[0].Columns[0].ToString()"
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Bom dia guilhermetgsm,
E qual é o erro?
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Coloque um Breakpoint nessa área "dtSet.Tables[0].Columns[0].ToString() " e veja o valor que esta trazendo
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Sugerido como Resposta Robson William SilvaModerator terça-feira, 16 de agosto de 2016 12:53
-
Olá Guilherme!
Essa sua condição não está fazendo muito sentido.. A propriedade Columns[] vai retornar a DataColumn, e não o valor que foi lido do banco.. Se você está querendo saber qual valor foi retornado do banco, você precisa utilizar a propriedade Rows:
var empresaRetornada = dtSet.Tables[0].Rows[0][0].ToString();
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Robson William SilvaModerator quinta-feira, 18 de agosto de 2016 12:29