how do I get the id from the information to be passed to the textbox

0

I wanted the textbox with the information about that student to be filled in with the student's MR (primary key).

CREATE TABLE ALUNO(
RM_ALUNO INT NOT NULL,
NM_ALUNO VARCHAR (40) NOT NULL,
SERIE_ALUNO VARCHAR (30) NOT NULL,
DTNASC_ALUNO DATE  NOT NULL,
PERIODO VARCHAR(50) NOT NULL,
CURSO VARCHAR(50) NOT NULL,
RG_RESPON_ALUNO_1 CHAR (11) NULL,
NM_RESPON_ALUNO_1 VARCHAR (40) NULL,
TEL_RESPON_ALUNO_1 VARCHAR(40) NULL,
RG_RESPON_ALUNO_2 CHAR (11) NULL,
NM_RESPON_ALUNO_2 VARCHAR (40) NULL,
TEL_RESPON_ALUNO_2 VARCHAR(40) NULL,
RG_RESPON_ALUNO_3 CHAR (11) NULL,
NM_RESPON_ALUNO_3 VARCHAR (40) NULL,
TEL_RESPON_ALUNO_3 VARCHAR(40) NULL,
RG_RESPON_ALUNO_4 CHAR (11) NULL,
NM_RESPON_ALUNO_4 VARCHAR (40) NULL,
TEL_RESPON_ALUNO_4 VARCHAR(40) NULL,
RG_RESPON_ALUNO_5 CHAR (11) NULL,
NM_RESPON_ALUNO_5 VARCHAR (40) NULL,
TEL_RESPON_ALUNO_5 VARCHAR(40) NULL,

PRIMARY KEY (RM_ALUNO),
)

I'mtryingthiswaybutit'snotworking.

SqlConnectioncon=newSqlConnection(@"Data Source=DESKTOP-SEFSOUP\SQLEXPRESS;Initial Catalog=DISPENSA;Integrated Security=True");
            SqlCommand cmd = new SqlCommand("select * from ALUNO where RM_ALUNO=" + txtRm.Text, con);
            cmd.CommandType = CommandType.Text;

            cmd.Parameters.Add("@NM_ALUNO", SqlDbType.VarChar).Value = nome;
            cmd.Parameters.Add("@SERIE_ALUNO", SqlDbType.VarChar).Value = serie;

            cmd.Parameters.Add("@PERIODO_ALUNO", SqlDbType.VarChar).Value = periodo;
            cmd.Parameters.Add("@CURSO_ALUNO", SqlDbType.VarChar).Value = curso;

            lblAluno.Text = nome;
            lblSerie.Text = serie;
            lblPeriodo.Text = periodo;
            lblCurso.Text = curso;

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            DataTable dt = new DataTable();

            da.Fill(dt);

            da.Dispose();
            cmd.Dispose();
            con.Close();

            if (dt.Rows.Count == 1)
            {
                return true;
            }
            else
            {
                return false;
            }
            return ok;

        }
    
asked by anonymous 16.11.2018 / 18:54

1 answer

0

Try using this code:

using (SqlConnection connection = new SqlConnection(@"Data Source=DESKTOP-SEFSOUP\SQLEXPRESS;Initial Catalog=DISPENSA;Integrated Security=True"))
{
    string query = @"SELECT RM_ALUNO,
                            NM_ALUNO,
                            SERIE_ALUNO,
                            PERIODO,
                            CURSO,
                            NM_RESPON_ALUNO_1,
                            RG_RESPON_ALUNO_1
                       FROM ALUNO
                      WHERE RM_ALUNO = @RM_ALUNO";

    using (SqlCommand command = new SqlCommand(query, connection))
    {
        command.Parameters.AddWithValue("@RM_ALUNO", txtRm.Text);

        try
        {
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                //Nesse caso o retorno possuirá apenas 1 item pois a query filtra pelo identificador
                while (reader.Read())
                {
                    lblAluno.Text = Convert.ToString(reader["NM_ALUNO"]);
                    lblSerie.Text = Convert.ToString(reader["SERIE_ALUNO"]);
                    lblPeriodo.Text = Convert.ToString(reader["PERIODO"]);
                    lblCurso.Text = Convert.ToString(reader["CURSO"]);
                }
            }
            else
            {
                MessageBox.Show(string.Format("O aluno com RM {0} não foi encontrado.", txtRm.Text),
                                "Informação",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }

            reader.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(string.Format("Ocorreu um erro ao buscar os dados do aluno de RM {0}, mais detalhes: {1}", txtRm.Text, ex.Message),
                            "Erro",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
        }
    }
}
    
26.12.2018 / 18:33