#c# #asp.net #database #visual-studio-2010
#c# #asp.net #База данных #visual-studio-2010
Вопрос:
Я создаю веб-игру, используя Visual Studio и asp.net .
Теперь я хочу перейти от формы 1 к форме 2. Однако я не знаю, как сохранить имя пользователя и пароль, чтобы я мог позже обновлять записи из формы 2.
Это мой код в форме 1, где я получаю имя пользователя, играющего.
SqlCommand cmd = new SqlCommand
("select UserName from UserData where UserName = @name", conn);
cmd.Parameters.Add(new SqlParameter("@name", TextBox2.Text.ToString()));
// 2. Call Execute reader to get query results
SqlDataReader rdr = cmd.ExecuteReader();
//Label1.Text = "Welcome";
while (rdr.Read())
{
Label1.Text = "Welcome " rdr["UserName"].ToString()
". Press the Play Button to Play";
Button3.Enabled = true;
}
if (rdr.HasRows == false)
{
// Button3.Enabled = false;
Label1.Text = "Sorry You arent in our system.
Please Register Yourself Before Starting";
}
}
catch (Exception ex)
{
// Label1.Text = "Error: " ex.Message "<br/>";
}
Теперь я хочу перейти к форме два и обновить его результаты. Как я могу это сделать.
Спасибо.
Ответ №1:
Если я правильно понимаю ваш вопрос, вам нужно сохранить значение в состоянии сеанса, чтобы его можно было извлечь в запросе страницы подпоследовательности.
// Form 1
while (rdr.Read())
{
Page.Session["UserName"] = rdr["UserName"].ToString();
Label1.Text = "Welcome " rdr["UserName"].ToString() ". Press the Play Button to Play";
Button3.Enabled = true;
}
// Form 2
string username = Page.Session["UserName"].ToString(); // Retrieve in form 2
Комментарии:
1. Спасибо. Сделал это, и это работает. Однако в форме 2 указано, что ссылка на объект не установлена для экземпляра объекта. Вы знаете, как это исправить?
2. В принципе, значение не было сохранено в форме 1. Я обновил код. Если ошибка все еще возникает, пожалуйста, загрузите код формы 2.