Member 12802669 Ответов: 2

Как отобразить данные на основе текущего зарегистрированного пользователя?


How do you display data that is retrieved from database according to the current login user? I know that I should declare the id, but I dont really know how...

I have 2 tables in SQL. 

User: 
ID || Name || Last_Name || date ||
List
ID || Product || description || user_id


Что я уже пробовал:

<pre>private void BindGridView()
    {  
string constr = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;

            using (SqlConnection conn = new SqlConnection(constr))
            {

                using (SqlCommand cmd = new SqlCommand())
                { 
                    cmd.Connection = conn;
                    cmd.CommandText = @"SELECT * From List where ID = @ID";
                    cmd.Parameters.AddWithValue("@ID", ?);

                    using (SqlDataAdapter ad = new SqlDataAdapter(cmd))
                    {
                        DataTable dt = new DataTable();
                        ad.Fill(dt);
                        GridView1.DataSource = dt;
                        GridView1.DataBind();
                    }
                }     
        }
    }

[no name]

Ну, вы бы заменили"? " на любой идентификатор, откуда бы вы его ни получили. Мы не можем вам сказать, это ваш проект, и мы ничего о нем не знаем.

2 Ответов

Рейтинг:
2

Ramesh Kumar Barik

После успешного входа в систему сохраните идентификатор пользователя в сеансе, чтобы узнать зарегистрированного пользователя для вашего приложения.

ex: Session ["UserID"]= UserID; (здесь UserID - это зарегистрированный идентификатор пользователя для этого сеанса)

В соответствии с вашим вопросом вы хотите получить данные из списка путем регистрации
cmd. CommandText = @ " SELECT * From List where ID = @ID";
Параметры.AddWithValue ("@ID",?);

Instade вопросительного знака передавать значение сессию записывается ID пользователя.
Как :
Параметры.AddWithValue ("@ID", Session ["UserID"]);

Если UserID является целочисленным полем, то перед передачей в качестве параметра преобразуйте его в целочисленное поле like. Параметры.AddWithValue ("@ID", Convert.ToInt32(Session ["UserID"]));

Попробовать это. Я думаю, это решит вашу проблему.


Рейтинг:
1

OriginalGriff

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

cmd.Parameters.AddWithValue("@ID", ?);