Usuário com melhor resposta
Alterando Registro no mysql

Pergunta
-
Bom dia pessoal estou com umas duvidas sou amador na área de c# estou desenvolvendo um pequeno projeto,
estão no codigo abaixo ele verifica login , senha e hd no banco de dados, e ser o hd for = ""
ele vai ser capiturado com o codigo, salvo na string check, estão o problema estar aqui quero que ele mande o valor da string check para o usuario que estar autenticando na coluna hdolha pessoal eu tentei assim
conexao.Open();
query.CommandText = "UPDATE 'contas' SET 'usuario' = " + textBox1.Text + ", 'senha' = " + textBox2.Text + ", 'hd' = " + check + "'";mas não tive sucesso não sei se estar correto
string hdzero = ""; string config = "server=localhost;uid=1234;database=root;pwd=1234"; MySqlConnection conexao = new MySqlConnection(config); MySqlCommand query = new MySqlCommand(); conexao.Open(); query.Connection = conexao; query.CommandText = "SELECT usuario, senha, hd FROM contas WHERE hd = '" + hdzero + "'AND usuario = '" + textBox1.Text +"' AND senha = '" + textBox2.Text + "'"; bool verifica = query.ExecuteReader().HasRows; conexao.Close(); if (verifica == true) { //CAPITURA DE DISC ID PARA LOGIN// String drive = "C"; ManagementObject objDisco = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":"""); objDisco.Get(); string hdVolumeID = objDisco["VolumeSerialNumber"].ToString(); string check = hdVolumeID; // Envio do HDnumero db no registro do usuario// MessageBox.Show("Conta ativada com sucesso"); } else MessageBox.Show("Usuario ja Ativo");
- Editado Thiagobezerratbs terça-feira, 30 de junho de 2015 18:15
Respostas
-
Para que esse comando funcione você deve usar WHERE para especificar que recebera esse valor, tente dessa forma:
string hdzero = ""; string config = "server=localhost;uid=1234;database=root;pwd=1234"; MySqlConnection conexao = new MySqlConnection(config); MySqlCommand query = new MySqlCommand(); conexao.Open(); query.Connection = conexao; query.CommandText = "SELECT usuario, senha, hd FROM contas WHERE hd = '" + hdzero + "' AND usuario = '" + textBox1.Text +"' AND senha = '" + textBox2.Text + "'"; //Armazena o retorno do SELECT MysqlDataReader reader = query.ExecuteReader(); bool verifica = reader.HasRows; conexao.Close(); if (verifica == true) { //CAPITURA DE DISC ID PARA LOGIN// String drive = "C"; ManagementObject objDisco = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":"""); objDisco.Get(); string hdVolumeID = objDisco["VolumeSerialNumber"].ToString(); string check = hdVolumeID; // Envio do HDnumero db no registro do usuario// //Atualiza de acordo com o usuario obtido atraves do select query.CommandText = "UPDATE contas SET usuario = '" + textBox1.Text + "',senha = '" + textBox2.Text + "',hd = '" + check + "' WHERE usuario='"+reader["usuario"].ToString()+"'" ; query.ExecuteNonQuery(); MessageBox.Show("Conta ativada com sucesso"); } else MessageBox.Show("Usuario ja Ativo");
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Sugerido como Resposta Mr. Morello quinta-feira, 2 de julho de 2015 16:49
- Marcado como Resposta Matheus L. M. C. Campos sexta-feira, 3 de julho de 2015 19:55
Todas as Respostas
-
@Thiago
Na base de dados mysql um campo checked recebe dois tipos de valor:
- 0 representa falso
-1 representa verdadeiro
pois fazer de duas formas, mais a forma correcta talvez seria escrever o codigo direitamente, tipo
if (checked.Ischeked.equal(true)
{
blaaaa blaaa
}
OBS: usa parametros no teu update comando. E ma pratica passar os valores direitamente no teu update commando.
A flower cannot blossom without sunshine, and man cannot live without love.
-
Para que esse comando funcione você deve usar WHERE para especificar que recebera esse valor, tente dessa forma:
string hdzero = ""; string config = "server=localhost;uid=1234;database=root;pwd=1234"; MySqlConnection conexao = new MySqlConnection(config); MySqlCommand query = new MySqlCommand(); conexao.Open(); query.Connection = conexao; query.CommandText = "SELECT usuario, senha, hd FROM contas WHERE hd = '" + hdzero + "' AND usuario = '" + textBox1.Text +"' AND senha = '" + textBox2.Text + "'"; //Armazena o retorno do SELECT MysqlDataReader reader = query.ExecuteReader(); bool verifica = reader.HasRows; conexao.Close(); if (verifica == true) { //CAPITURA DE DISC ID PARA LOGIN// String drive = "C"; ManagementObject objDisco = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":"""); objDisco.Get(); string hdVolumeID = objDisco["VolumeSerialNumber"].ToString(); string check = hdVolumeID; // Envio do HDnumero db no registro do usuario// //Atualiza de acordo com o usuario obtido atraves do select query.CommandText = "UPDATE contas SET usuario = '" + textBox1.Text + "',senha = '" + textBox2.Text + "',hd = '" + check + "' WHERE usuario='"+reader["usuario"].ToString()+"'" ; query.ExecuteNonQuery(); MessageBox.Show("Conta ativada com sucesso"); } else MessageBox.Show("Usuario ja Ativo");
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Sugerido como Resposta Mr. Morello quinta-feira, 2 de julho de 2015 16:49
- Marcado como Resposta Matheus L. M. C. Campos sexta-feira, 3 de julho de 2015 19:55