none
Alterando Registro no mysql RRS feed

  • 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 hd

    olha 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");





    terça-feira, 30 de junho de 2015 14:53

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");

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 1 de julho de 2015 11: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.

    quarta-feira, 1 de julho de 2015 09:24
    Moderador
  • 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");

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 1 de julho de 2015 11:55