Как сделать так, чтобы только зарегистрированый ученик мог видеть только свою оценку, а не всех? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь сделать так, чтобы только зарегистрированый ученик мог просматривать свою собственную оценку, а не просматривать все оценки.

Я нахожусь в процессе создания приложения холста, которое позволяет вошедшему в системуСтудент, чтобы просмотреть их назначение и оценки.Мне нужно только, чтобы datagridview показывал имя и оценку зарегистрированного студенческого задания.

 void GridFillGrade()
    {
        using (MySqlConnection con = new MySqlConnection(connectionString))
        {
            con.Open();
            MySqlDataAdapter sda = new MySqlDataAdapter("ViewAllGrades", con);
            sda.SelectCommand.CommandType = CommandType.StoredProcedure;
            DataTable dta = new DataTable();
            sda.Fill(dta);
            stdGrade.DataSource = dta;
           con.Close();
        }
    } 

    private void StudentPage_Load(object sender, EventArgs e)
    {
        GridFillASs();
        GridFillGrade();
    }

"viewAllGrades" из запроса mysql

CREATE DEFINER=`root`@`localhost` PROCEDURE `ViewAllGrades`()
BEGIN
    SELECT * 
FROM  Grades;

END

это код входа в систему

 private void btnlogin_Click(object sender, EventArgs e)
    {
        i = 0;
        con.Open();
        MySqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select * from stdinfotable where Username='" + textuser.Text + "' and Password= '" + textpass.Text + "'";
        cmd.ExecuteNonQuery();
        DataTable dt = new DataTable();
        MySqlDataAdapter dta = new MySqlDataAdapter(cmd);
        dta.Fill(dt);
        i = Convert.ToInt32(dt.Rows.Count.ToString());

        if(i==0)
        {
            MessageBox.Show("Error");
        }
        else
        {
            this.Hide();
            StudentPage f = new StudentPage();
            f.Show();

        }
        con.Close();

    }

так что мне было интересно, нужно ли мне что-то делать с кодом входа в систему, чтобы архивировать то, что я ищу, но я не знаю, что это будет.Прошу прощения, я все еще новичок в базе данных, прошло всего 4 месяца с тех пор, как я использовал MySql.

1 Ответ

0 голосов
/ 26 января 2019

Я предполагаю, что в вашей таблице оценок есть ключ, чтобы связать его с stdinfotable.

Если это так, то ваш SQL-запрос будет

SELECT * FROM Grades WHERE Grades.StudentID = 12

В котором вошедший в систему студент имеет ID 12

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...