Member 13652585 Ответов: 1

Как обновить сведения о пользователе, вошедшем в систему с помощью сеансов 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"], поэтому мы не можем проверить это для вас, только вы можете проверить это, поэтому научитесь использовать отладчик для пошагового просмотра вашего кода.

1 Ответов

Рейтинг:
2

ZurdoDev

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