2016-04-23 3 views
1

У меня есть сайт с 3 страницами регистрации. Каждая страница содержит информацию, и все 3 страницы являются частью процесса регистрации. Я знаю, что команда INSERT используется для создания новых строк. Но в команде UPDATE я должен упомянуть пункт WHERE. Итак, мой вопрос: как я могу UPDATE той же строки, которую я обновил на прошлых страницах. Я использую сообщество Visual Studio 2015. Любая помощь будет оценена.C# SQL - Несколько вопросов об обновлении строк

Первый код страницы:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 

public partial class Sign_Up_SignUpMain_1_ : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void btnNext_Click(object sender, EventArgs e) 
    { 
     string str = "Data Source=(LocalDB)\\MSSQLLocalDB;"; 
     str += "AttachDbFilename=|DataDirectory|Database.mdf;"; 
     str += "Integrated Security= True"; 
     string email, userName; 
     //Page 
     if (Page.IsValid == true) 
     { 
      email = txtEmail.Text; 
      userName = txtUserName.Text; 
      SqlConnection c = new SqlConnection(str); 
      SqlCommand sqlCommand = new SqlCommand("INSERT INTO [Table] (Email, UserName) VALUES (@email, @userName);", c); 
      sqlCommand.Connection = c; 
      sqlCommand.Parameters.AddWithValue("@email", email); 
      sqlCommand.Parameters.AddWithValue("@userName", userName); 
      c.Open(); 
      sqlCommand.ExecuteNonQuery(); 
      c.Close(); 
      Response.Redirect("SignUp(2).aspx", true); 
     } 
     //Email 
     if (rfvEmail.IsValid == false || revEmail.IsValid == false) 
     { txtEmail.CssClass = "txtError"; } 
     else 
     { txtEmail.CssClass = "Text"; } 
     //User Name 
     if (rfvUserName.IsValid == false || revUserName.IsValid == false) 
     { txtUserName.CssClass = "txtError"; } 
     else 
     { txtUserName.CssClass = "Text"; } 
    } 
} 

Второй код страницы:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 

public partial class Sign_Up_SignUp_2_ : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void btnNext_Click(object sender, EventArgs e) 
    { 
     string str = "Data Source=(LocalDB)\\MSSQLLocalDB;"; 
     str += "AttachDbFilename=|DataDirectory|Database.mdf;"; 
     str += "Integrated Security= True"; 
     string password; 
     //Page 
     if (Page.IsValid == true) 
     { 
      password = txtPass.Text; 
      SqlConnection c = new SqlConnection(str); 
      SqlCommand sqlCommand = new SqlCommand("INSERT INTO [Table] (Email, UserName) VALUES (@email, @userName);", c); 
      Response.Redirect("SignUp(3).aspx", true); 
     } 
     //Password 
     if (revPass.IsValid == false || rfvPass.IsValid == false) 
     { txtPass.CssClass = "txtError"; } 
     else 
     { txtPass.CssClass = "Text"; } 
     //Confirm Password 
     if (rfvConPass.IsValid == false) 
     { txtConPass.CssClass = "txtError"; } 
     else 
     { txtConPass.CssClass = "Text"; } 
     //Compare Passwords 
     if (cvPasswords.IsValid == false) 
     { 
      txtPass.CssClass = "txtError"; 
      txtConPass.CssClass = "txtError"; 
      txtPass.Text = ""; 
      txtConPass.Text = ""; 
     } 
     else 
     { 
      txtPass.CssClass = "Text"; 
      txtConPass.CssClass = "Text"; 
     } 

    } 
} 
+1

Вам необходимо указать код, показывающий, что у вас есть, и то, что вы пробовали. –

+0

Использовать идентификатор первой вставки. –

+0

@Dmitry K. Я опубликовал код, пока я пытался найти в Интернете, как импортировать первичный ключ, но я этого не понимал. @huseyin tugrul buyukisik как я могу это сделать? – D4NieLDev

ответ

0

Ok Я вижу ваш вопрос, вы не передавая значения, которые уже были вставлены между страницами , Вы можете использовать Session State to pass objects between parameters

На текущей странице, перед перенаправлением на следующую страницу, всю информацию, которую вы хотите сохранить в состоянии сеанса:

Session["email"] = theirEmailAddress; 
Session["username"] = theirUserName; 

После хранения необходимой информации в сессии перенаправить на следующую страницу и сохранить информацию на этой странице в сеансе.

Затем, наконец, на последней странице вы можете получить доступ ко всем данным сеанса и выполнить одну команду вставки SQL. Чтобы получить доступ к элементам сеанса, вы просто делаете это:

string email = (string)(Session["email"]); 
+0

Я не понимал, что делает отчет сезона и как его использовать. Не могли бы вы объяснить? – D4NieLDev

+0

Он позволяет хранить данные, которые пользователь вводит, чтобы вы могли получить к нему доступ позднее. Вам нужно сохранить всю свою информацию из своего нового пользовательского создания, а затем, как только у них будет входной файл, вы можете сразу использовать его для выполнения запроса SQL INSERT. Я не уверен, насколько это яснее. Посмотрите на ссылку, которую я предоставил. –

+0

OK Я думаю, что понял это спасибо! – D4NieLDev

Смежные вопросы