2016-04-23 11 views
1

私は3つのサインアップページを持つウェブサイトを持っています。 すべてのページに情報が含まれており、3ページすべてが登録プロセスの一部です。 私は、コマンドを使って新しい行を作成することを知っています。しかし、UPDATEコマンドでは、私はWHERE節を述べなければなりません。 私の質問は、どのようにしてUPDATE私は過去のページで更新された同じ行です。 私はVisual Studio Community 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"; } 
    } 
} 

第2ページコード:

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

最初の挿入のIDを使用します。 –

+0

@Dmitry K.私はコードを投稿しましたが、これまでインターネットでプライマリキーをインポートする方法を見つけようとしましたが、私はそれを理解しませんでした。 @huseyin tugrul buyukisikどのようにこれらを行うことができますか? – D4NieLDev

答えて

0

私はあなたの問題を参照して[OK]を、あなたはすでに、ページの間に挿入された値を渡していません。セッションに必要な情報を格納した後

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

:あなたはセッション状態に保持するすべての情報を設定し、次のページにリダイレクトする前に、あなたの現在のページでSession State to pass objects between parameters

を使用することができます次のページにリダイレクトし、このページの情報をセッションにも格納します。

最後に、最後のページですべてのセッションデータにアクセスし、1つのSQL挿入コマンドを実行できます。セッション項目にアクセスするには、次のようにします:

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

シーズン・ステートメントが何をしているのか、どうすればいいのか分かりませんでした。説明していただけますか? – D4NieLDev

+0

これは、ユーザーが入力したデータを保存して、後でアクセスできるようにします。新しいユーザー作成からすべての情報を保存し、すべての情報を入力したらすぐにすべてを使用してSQL INSERTクエリを実行する必要があります。これがどのくらい明確であるかはわかりません。私が提供したリンクを見てください。 –

+0

OK私はそれを感謝したと思う! – D4NieLDev

関連する問題