Как обновить сведения о пользователе, вошедшем в систему с помощью сеансов C# ASP.NET
Поэтому я хочу иметь возможность обновлять сведения о пользователе, который вошел в систему. Таким образом, у меня есть несколько атрибутов, которые я хотел бы обновить, однако я хочу, чтобы пользователю не нужно было вводить свой идентификатор каждый раз, когда он хочет что-то изменить. Это мой код под кнопкой Сохранить, однако ничего не происходит, кроме перенаправления на другую страницу. Любая помощь будет любезно оценена
Что я уже пробовал:
<pre> protected void btnTenantSave_Click(object sender, EventArgs e) { if (!Page.IsPostBack) { //Creating a connection to my database using the connection string string cs = System.Configuration.ConfigurationManager.ConnectionStrings["rent-dbConnectionString1"].ConnectionString; SqlConnection con = new SqlConnection(cs); //preparing a query which will update the data in the database with the data entered into the textboxes SqlCommand cmd = new SqlCommand("UPDATE Tenants SET Tenant_FullName='" + this.txtTenantFullName.Text + "',Tenant_Email='" + this.txtTenantEmail.Text + "',Tenant_TelNum='" + this.txtTenantTelNum.Text + "',Tenant_EmName= '" + this.txtTenantEmName.Text + "',Tenant_EmNum= '" + this.txtTenantEmNum.Text + "',Tenant_WorkStatus= '" + this.txtWorkstatus.Text + "'Where Tenant_Email='" + Session["TenantLogin"] + "';", con); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } Response.Redirect("TenantIndex.aspx"); }
an0ther1
Не используйте конкатенацию строк для создания SQL-операторов, вы оставляете себя открытым для SQL-инъекции, обратитесь к следующим ссылкам;
MSDN: защита от SQL-инъекций
Школы W3:SQL-инъекция
Во - вторых, используйте свой отладчик-существует ли значение сеанса TenantLogin? Это заполняется?
Если ответ утвердительный, то вам нужно будет определить, почему вы не обновляете правильную запись, это может быть из - за разрешений или вашего оператора, ваш отладчик должен быть в состоянии помочь в этом- см. ссылку ниже;
MSDN: отладка в Visual Studio
с уважением
F-ES Sitecore
Если "ничего не происходит", то вполне возможно, что предложение "where" не соответствует допустимой записи в вашей базе данных. Мы не можем получить доступ к вашим данным и не знаем, что находится в сеансе["TenantLogin"], поэтому мы не можем проверить это для вас, только вы можете проверить это, поэтому научитесь использовать отладчик для пошагового просмотра вашего кода.