Click here to Skip to main content
15,917,808 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i have three tables named as register ,login , lostpassword..when iam inserting the data into tables they are working but the column named as regid is there in the three tables.so, how do i keep the relation between tables using query in c# program so that automatically regid column has to be updated in other tables too.how can i write the query?

What I have tried:

string s = "insert into REGISTER(EMAILID,USER_NAME,PASSWORD,MBLE_NUM,QUESTION1,ANSWER,QUESTION2,ANSWER2)VALUES(@EMAILID, @USER_NAME,@PASSWORD,@MBLE_NUM,@QUESTION1,@ANSWER,@QUESTION2,@ANSWER2)";
SqlCommand cmd = new SqlCommand(s, con);
cmd.Parameters.AddWithValue("@EMAILID", textBox1.Text);
cmd.Parameters.AddWithValue("@USER_NAME", textBox2.Text);
cmd.Parameters.AddWithValue("@PASSWORD", textBox3.Text);
cmd.Parameters.AddWithValue("@MBLE_NUM", textBox4.Text);
cmd.Parameters.AddWithValue("@QUESTION1", comboBox1.Text);
cmd.Parameters.AddWithValue("@ANSWER", textBox5.Text);
cmd.Parameters.AddWithValue("@QUESTION2", comboBox2.Text);
cmd.Parameters.AddWithValue("@ANSWER2", textBox6.Text);

string strng = "insert into LOGIN(USER_NAME,PASSWORD)VALUES(@USER_NAME,@PASSWORD)";
SqlCommand cm = new SqlCommand(strng, con);
cm.Parameters.AddWithValue("@USER_NAME", textBox2.Text);
cm.Parameters.AddWithValue("@PASSWORD", textBox3.Text);

string sg = "insert into RESET_MY_PASSWORD(EMAIL_ID,QUESTION1,ANSWER,QUESTION2,ANSWER2)VALUES(@EMAIL_ID,@QUESTION1,@ANSWER,@QUESTION2,@ANSWER2)";
SqlCommand sq = new SqlCommand(sg, con);
sq.Parameters.AddWithValue("@EMAIL_ID", textBox1.Text);
sq.Parameters.AddWithValue("@QUESTION1", comboBox1.Text);
sq.Parameters.AddWithValue("@ANSWER", textBox5.Text);
sq.Parameters.AddWithValue("@QUESTION2", comboBox2.Text);
sq.Parameters.AddWithValue("@ANSWER2", textBox6.Text);

cmd.ExecuteNonQuery();
cm.ExecuteNonQuery();
sq.ExecuteNonQuery();
this.Close();
Posted
Updated 27-Apr-17 5:07am
v3
Comments
Maciej Los 27-Apr-17 14:30pm    
Sorry, i don't understand you...

1 solution

Hi
In your case i would use try and transaction. If the regid of table registration is specified as identity then

C#
try
            {
                SqlTransaction strns = con.BeginTransaction();
                try
                {

                    SqlCommand cmd = new SqlCommand("insert into REGISTER(EMAILID,USER_NAME,PASSWORD,MBLE_NUM,QUESTION1,ANSWER,QUESTION2,ANSWER2)VALUES(@EMAILID, @USER_NAME,@PASSWORD,@MBLE_NUM,@QUESTION1,@ANSWER,@QUESTION2,@ANSWER2); SELECT SCOPE_IDENTITY()", con);
                    cmd.Transaction = strns;
                    cmd.Parameters.AddWithValue("@EMAILID", textBox1.Text);
                    cmd.Parameters.AddWithValue("@USER_NAME", textBox2.Text);
                    cmd.Parameters.AddWithValue("@PASSWORD", textBox3.Text);
                    cmd.Parameters.AddWithValue("@MBLE_NUM", textBox4.Text);
                    cmd.Parameters.AddWithValue("@QUESTION1", comboBox1.Text);
                    cmd.Parameters.AddWithValue("@ANSWER", textBox5.Text);
                    cmd.Parameters.AddWithValue("@QUESTION2", comboBox2.Text);
                    cmd.Parameters.AddWithValue("@ANSWER2", textBox6.Text);
                    Int64 regid = (Int64)cmd.ExecuteScalar();
                    cmd.CommandText = "insert into LOGIN(regid, USER_NAME,PASSWORD)VALUES(@regid, @USER_NAME,@PASSWORD)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@regid", regid);
                    cmd.Parameters.AddWithValue("@USER_NAME", textBox2.Text);
                    cmd.Parameters.AddWithValue("@PASSWORD", textBox3.Text);
                    cmd.ExecuteNonQuery();
                    cmd.CommandText = "insert into RESET_MY_PASSWORD(regid, EMAIL_ID,QUESTION1,ANSWER,QUESTION2,ANSWER2)VALUES(@regid, @EMAIL_ID,@QUESTION1,@ANSWER,@QUESTION2,@ANSWER2)";
                    cmd.Parameters.Clear();
                    cmd.Transaction = strns;
                    cmd.Parameters.AddWithValue("@regid", regid);
                    cmd.Parameters.AddWithValue("@EMAIL_ID", textBox1.Text);
                    cmd.Parameters.AddWithValue("@QUESTION1", comboBox1.Text);
                    cmd.Parameters.AddWithValue("@ANSWER", textBox5.Text);
                    cmd.Parameters.AddWithValue("@QUESTION2", comboBox2.Text);
                    cmd.Parameters.AddWithValue("@ANSWER2", textBox6.Text);
                    cmd.ExecuteNonQuery();
                    cmd.Dispose();
                    strns.Commit();
                }
                catch (Exception)
                {
                    strns.Rollback();
                    throw;
                }
            }
            catch (Exception ex)
            {

                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900