none
Sugestão executescalar RRS feed

  • Pergunta

  • Aqui estou usando apenas um campo do banco de dados em uma textbox
    preciso de uma sugestão para usar mais campos da mesma tabela em outras textbox



    obrigado.

            Dim conn As New OleDbConnection()
            conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Documents and Settings\AJUSTES\medidas.mdb"
            Dim cmd As OleDbCommand = conn.CreateCommand


            cmd.CommandText = "Select [A01] from ajuste"
            conn.Open()

            Dim A01 As String = cmd.ExecuteScalar().ToString()

            If (A01 <> Nothing And A01 <> "") Then

                TextBox1.Text = A01

            End If

    segunda-feira, 14 de setembro de 2009 13:55

Respostas

  • Bruno mas como você quer trazer esses campos, trazer uma linha inteira, apenas a primeira você quer?
    Se for você pode fazer:

    OleDbCommand command = "select * from ajuste";
    OleDbDataReader reader = command.ExecuteReader();
    if(reader.HasRows)
    {
    reader.Read();
    textBox1.Text = reader["campo1"].Text;
    textBox2.Text = reader["campo2"].Text;
    }

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 14:32
  • foi o reader["campo"].Text? se for desculpa e reader["campo"].ToString() se não por favor me fale qual foi o erro
    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 19:15
  • Bruno por favor me informe o erro que está ocorrendo... é quando o programa executa ou ele nem executa da erro na hora de compilar?
    Me mande o código que eu te mostrei acima.
    Vamos supor você tem uma tabela q possui linhas assim:

    Nome    Sobrenom
    Murilo    Gomes
    Bruno    Gaiola

    e você quer pegar só Murilo Gomes, é isso?
    Me explique melhor.
    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 20:40
  • Vamos la por partes:

    Para mostrar nos textboxes:

    Dim cmd As OleDbCommand = New OleDbCommand("select A01, A02, A03 from ajuste", connection)
    Dim reader As OleDbDataReader = cmd.ExecuteReader()
            If reader.HasRows Then
                reader.Read()
                textBox1.Text = reader("A01").ToString()
                textBox2.Text = reader("A02").ToString()
                textBox3.Text = reader("A03").ToString()
            End If

    Para atualizar continua praticamente o mesmo

    Dim cmd As OleDbCommand = New OleDbCommand("update ajuste set A01=@A01, A02=@A02, A03=@A03", connection)
            cmd.Parameters.AddWithValue("A01", textBox1.Text)
            cmd.Parameters.AddWithValue("A02", textBox2.Text)
            cmd.Parameters.AddWithValue("A03", textBox3.Text)
            cmd.ExecuteNonQuery()
    Deixa eu te perguntar você não tem um id nessa tabela? Pois esse código irá atualizar todas as outras linhas caso você tenha mais.
    Esperto ter ajudado.
    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 21:06
  • Sim Bruno ficaria, ai na hora de você jogar os campos para o textbox é só colocar

    reader("nomeDaColuna").ToString()

    E no update adicionar cada campo "update ajuste set A01=@A01, A02=@A02, A03=@A03, A04=@A04, A05=@A05"

    E adicionar cada novo parâmetro:

    cmd.Parameters.AddWithValue("@A04", textBox4.Text)
    cmd.Parameters.AddWithValue("@A05", textBox5.Text)

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 13:04
    terça-feira, 15 de setembro de 2009 12:45
  • Entao Murilo, é assim

    eu tenho a Tabela AJUSTE
    com os campos (text)


    A01   A02   A03

    1.5    2.3    5.5


    a text tem que conter

    Textbox1  = 1.5
    textbox2  =  2.3
    textbox3  = 5.5

    mais ou menos isso

    voce me auxiliou para fazer apenas com um campo 
    agora preciso fazer com mais campos
    Alterar e salvar entende?

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 20:50
  • Ajudou muito murilo, obrigado
    só mais uma duvida

    caso haja mais campos na tabela e eu queira usar todos o codigo ficaria assim certo:

    ao inves de OleDbCommand("select A01, A02, A03 from ajuste", connection)

    seria OleDbCommand("select * from ajuste", connection)

    E também :

    Dim cmd As OleDbCommand = New OleDbCommand("update ajuste set A01=@A01, A02=@A02, A03=@A03", connection)


    seria

    ??????????



    obrigado

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    terça-feira, 15 de setembro de 2009 11:14
  • Ok, muito obrigado mais uma vez cara =)

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    terça-feira, 15 de setembro de 2009 13:00

Todas as Respostas

  • Bruno mas como você quer trazer esses campos, trazer uma linha inteira, apenas a primeira você quer?
    Se for você pode fazer:

    OleDbCommand command = "select * from ajuste";
    OleDbDataReader reader = command.ExecuteReader();
    if(reader.HasRows)
    {
    reader.Read();
    textBox1.Text = reader["campo1"].Text;
    textBox2.Text = reader["campo2"].Text;
    }

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 14:32
  • entao esse codigo não funcionou MAGomes

    quero so a primeira linha de cada campo
    segunda-feira, 14 de setembro de 2009 18:48
  • foi o reader["campo"].Text? se for desculpa e reader["campo"].ToString() se não por favor me fale qual foi o erro
    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 19:15
  • Bruno por favor me informe o erro que está ocorrendo... é quando o programa executa ou ele nem executa da erro na hora de compilar?
    Me mande o código que eu te mostrei acima.
    Vamos supor você tem uma tabela q possui linhas assim:

    Nome    Sobrenom
    Murilo    Gomes
    Bruno    Gaiola

    e você quer pegar só Murilo Gomes, é isso?
    Me explique melhor.
    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 20:40
  • Entao Murilo, é assim

    eu tenho a Tabela AJUSTE
    com os campos (text)


    A01   A02   A03

    1.5    2.3    5.5


    a text tem que conter

    Textbox1  = 1.5
    textbox2  =  2.3
    textbox3  = 5.5

    mais ou menos isso

    voce me auxiliou para fazer apenas com um campo 
    agora preciso fazer com mais campos
    Alterar e salvar entende?

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 20:50
  • Vamos la por partes:

    Para mostrar nos textboxes:

    Dim cmd As OleDbCommand = New OleDbCommand("select A01, A02, A03 from ajuste", connection)
    Dim reader As OleDbDataReader = cmd.ExecuteReader()
            If reader.HasRows Then
                reader.Read()
                textBox1.Text = reader("A01").ToString()
                textBox2.Text = reader("A02").ToString()
                textBox3.Text = reader("A03").ToString()
            End If

    Para atualizar continua praticamente o mesmo

    Dim cmd As OleDbCommand = New OleDbCommand("update ajuste set A01=@A01, A02=@A02, A03=@A03", connection)
            cmd.Parameters.AddWithValue("A01", textBox1.Text)
            cmd.Parameters.AddWithValue("A02", textBox2.Text)
            cmd.Parameters.AddWithValue("A03", textBox3.Text)
            cmd.ExecuteNonQuery()
    Deixa eu te perguntar você não tem um id nessa tabela? Pois esse código irá atualizar todas as outras linhas caso você tenha mais.
    Esperto ter ajudado.
    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    segunda-feira, 14 de setembro de 2009 21:06
  • Ajudou muito murilo, obrigado
    só mais uma duvida

    caso haja mais campos na tabela e eu queira usar todos o codigo ficaria assim certo:

    ao inves de OleDbCommand("select A01, A02, A03 from ajuste", connection)

    seria OleDbCommand("select * from ajuste", connection)

    E também :

    Dim cmd As OleDbCommand = New OleDbCommand("update ajuste set A01=@A01, A02=@A02, A03=@A03", connection)


    seria

    ??????????



    obrigado

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    terça-feira, 15 de setembro de 2009 11:14
  • Sim Bruno ficaria, ai na hora de você jogar os campos para o textbox é só colocar

    reader("nomeDaColuna").ToString()

    E no update adicionar cada campo "update ajuste set A01=@A01, A02=@A02, A03=@A03, A04=@A04, A05=@A05"

    E adicionar cada novo parâmetro:

    cmd.Parameters.AddWithValue("@A04", textBox4.Text)
    cmd.Parameters.AddWithValue("@A05", textBox5.Text)

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 13:04
    terça-feira, 15 de setembro de 2009 12:45
  • Ok, muito obrigado mais uma vez cara =)

    • Marcado como Resposta Bruno Gaiola terça-feira, 15 de setembro de 2009 18:59
    terça-feira, 15 de setembro de 2009 13:00