У меня есть приложение, в котором пользователь входит в систему и может редактировать данные своего друга. однако, если пользователь является администратором, он получает gridview со всеми пользовательскими записями, которые он может редактировать. если пользователь не является администратором, он просто получит список, в котором он сможет редактировать свои данные.с использованием переменной session в sql-запросе
Когда пользователь регистрируется на странице, его идентификатор пользователя, который сам по себе также хранится в db, хранится в качестве переменной сеанса в Session ["ID"]. теперь мне нужно заполнить список с данными пользователя. Я думал, что было бы хорошо просто запросить данные на основе параметра Session ["ID"]. но я не уверен, как это сделать.
EDIT:
нормально у меня есть немного кода относительно этого, как я понятия не имею, как это сделать, но я вывешу то, что я есть. первый метод, где я установить переменную сеанса идентификатор пользователя:
objda = new SqlDataAdapter("[GetIDOfUser]", objcon);
objda.SelectCommand.CommandType = CommandType.StoredProcedure;
objda.SelectCommand.Parameters.Add("@Username", SqlDbType.VarChar).Value = tbUsername.Text;
objda.SelectCommand.Parameters.Add("@UserPassword", SqlDbType.VarChar).Value = tbPassword.Text;
String id = (string)objda.SelectCommand.ExecuteScalar();
Session["ID"] = id;
это моя разметка:
<asp:ListView ID="ListView1" Visible="False" runat="server" DataSourceID="SqlDataSource2"></asp:ListView>
это код, где я включить ListView:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserAuthentication"] == null)
{
Response.Redirect("Login.aspx");
}
if (Session["Benutzerart"].ToString() == Enums.Enumerations.Benutzer.Administrator.ToString())
{
GridView1.Visible = true;
//Set controls for admin
}
if (Session["Benutzerart"].ToString() != Enums.Enumerations.Benutzer.Administrator.ToString())
{
ListView1.Visible = true;
//Set controls for other users
}
}
ОК, ребята, я это понял:
Я просто делаю обычный список, как в коде выше. только источник данных не имеет атрибута selectcommand в разметке. этот атрибут установлен в-код:
if (Session["Benutzerart"].ToString() != Enums.Enumerations.Benutzer.Administrator.ToString())
{
ListView1.Visible = true;
SqlDataSource2.SelectCommand = "SELECT [Titel], [Bezeichnung], [Vorname], [Nachname], [Geburtsdatum], [Geburtsort], [Straße], [Nationalität], [Hausnummer], [PLZ], [Ort], [Land], [Mobil], [UrlaubstageGenommen], [UrlaubstageInsgesamt], [Status], [Benutzerart], [Homepage], [Email], [Festnetz], [Fax], [UrlaubstageRest], [Username], [UserPassword] FROM [Benutzer] WHERE [BenutzerID] = '" + Session["ID"] + "'";
}
разметки источника данных:
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ></asp:SqlDataSource>
пожалуйста, напишите код, который вы имеете –
Кроме того, вы используете C# или VB.Net или что? – Melanie
Я использую C# ... – LeonidasFett