#c# #asp.net #sql #onload-event
#c# #asp.net #sql #onload-событие
Вопрос:
У меня проблема, когда я хочу обновить строку в базе данных. Страница, которая обновляется, также добавляет клиента, но проблема в том, что при обнаружении загрузки страницы была нажата кнопка обновления, кажется, что она продолжает загружать переменные, и я не могу обновить свою базу данных.
public partial class CustomerInput : System.Web.UI.Page
{
string update, Id, Name, Address, Suburb, Postcode, Age, Email;
protected void Page_Load(object sender, EventArgs e)
{
update = Request.QueryString["Update"];
if (update == "true")
{
SqlConnection connection = new SqlConnection("server=localhost; uid=xxxx; pwd=xxxx; database=Customer");
Button1.Text = "Update";
Id = Request.QueryString["Id"];
connection.Open();
SqlCommand command = new SqlCommand("Select * from Customer where Id = " Id, connection);
SqlDataReader read = command.ExecuteReader();
read.Read();
TextBox1.Text = read[1].ToString();
TextBox2.Text = read[2].ToString();
TextBox3.Text = read[3].ToString();
TextBox4.Text = read[4].ToString();
TextBox5.Text = read[5].ToString();
TextBox6.Text = read[6].ToString();
connection.Close();
update = string.Empty;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection("server=localhost; uid=xxxx; pwd=xxxx; database=Customer");
if (Button1.Text == "Update")
{
connection.Open();
SqlCommand command;
Name = TextBox1.Text;
Address = TextBox2.Text;
Suburb = TextBox3.Text;
Postcode = TextBox4.Text;
Age = TextBox5.Text;
Email = TextBox6.Text;
command = new SqlCommand("UPDATE Customer SET Name = " "'" Name "', " "Address = " "'" Address "', " "Suburb = " "'" Suburb "', "
"Postcode = " "'" Postcode "', " "Age = " "'" Age "', " "Email = " "'" Email "' " "Where Id =" Id, connection);
command.ExecuteNonQuery();
connection.Close();
}
if (Button1.Text == "New Client")
{
Name = TextBox1.Text;
Address = TextBox2.Text;
Suburb = TextBox3.Text;
Postcode = TextBox4.Text;
Age = TextBox5.Text;
Email = TextBox6.Text;
Response.Write("Blah");
SqlCommand command = new SqlCommand("INSERT INTO Customer VALUES (" "'" Name "'" ", " "'" Address "'" ", " "'" Suburb "'" ", "
"'" Postcode "'" ", " "'" Age "'" ", " "'" Email "'" ")", connection);
command.ExecuteNonQuery();
}
Button1.Text = "New Client";
}
}
}
Комментарии:
1.
it seems to keep loading up the variables
какие переменные? Почему вы не можете обновить свою базу данных?2. Проверьте !Страницу. IsPostBack в Page_Load.
Ответ №1:
В начале события загрузки вашей страницы вам нужно добавить оператор if, чтобы проверить, загружается ли страница в первый раз:
пример:
if (!IsPostBack)
{
... add your code here
}
Ответ №2:
Я думаю, вам нужно использовать Page.IsPostBack
:
if (Page.IsPostBack)
{
// Do Something ..
{
else
{
// Do something else ..
}