Как показать разные данные разным пользователям? - PullRequest
0 голосов
/ 28 сентября 2018

Допустим, родители вошли в систему, и я хотел бы показать им только детали своих детей в элементе управления GridView.В одной школе может учиться до одного ребенка.Как я могу этого достичь?Я попытался объединить 3 таблицы в своей базе данных и отобразить их в GridView следующим образом:

protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source = DESKTOP-H7KQUT1; Initial Catalog = SAOS; Integrated Security = True");

    String query = "SELECT s.FName FROM student s INNER JOIN student_parent sp ON s.SID = sp.SID INNER JOIN parent p ON sp.PID = p.PID WHERE p.PID = ";

    SqlCommand cmd = new SqlCommand(query, con);

    SqlDataReader dr;

    con.Open();

    dr = cmd.ExecuteReader();

    GridView1.DataSource = dr;

    GridView1.DataBind();

    con.Close();
}

Я могу успешно отображать данные ученика, но не знаю, как отображать разные данные ученика для разных родителей.Я застрял в этой строке:

String query = "SELECT s.FName FROM student s INNER JOIN student_parent sp ON s.SID = sp.SID INNER JOIN parent p ON sp.PID = p.PID WHERE p.PID = ";

Любые советы и рекомендации приветствуются

1 Ответ

0 голосов
/ 28 сентября 2018

Если я понимаю вашу схему, похоже, вы в основном ее поняли: вам нужно получить родительский идентификатор (pid), посмотрев, какой пользователь вошел в ваше веб-приложение.Затем вы будете использовать эту информацию, чтобы, скорее всего, выполнить запрос для поиска pid.Затем вы передаете это в качестве параметра в свой оператор SQL в форме «где p.pid=@PID».Вот некоторая документация о том, как построить запрос с параметрами: https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.parameters?view=netframework-4.7.2

Только одно слово предупреждения: будьте очень осторожны с тем, как вы получаете и проверяете родительский идентификатор (т.е. не просто передавайте его какПараметр URL, убедитесь, что это то, что вы аутентифицируете и сохраняете на стороне сервера, чтобы он не мог легко подвергнуть вас спуфингу и атакам с использованием инъекций)

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