Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. problem retrieving info from one table to insert it into another

problem retrieving info from one table to insert it into another

Scheduled Pinned Locked Moved C#
helpdatabasecomdesignquestion
23 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    ago2486
    wrote on last edited by
    #1

    good evening gentlemen and thank you to you who brought me help but I am continuing my project and I have a problem retrieving info from one table to insert it into another.
    I have three tables which are related
    1.product (article_ID, design, price_U, Qty)
    2.order (com_number, com_date, com_amount)
    3.detail_command (num_det, num_com, ID_article, qute_det)
    I can't fill the detail_commende table. It must be said that I am lost. can you put me on the track please
    I may have made a serious mistake in my codes.

    private void BtnValider_Click(object sender, EventArgs e)
    {
    DialogResult dialogResult = MessageBox.Show("Voulez vous valider la facture?", "VALIDATION DE LA FACTURE", MessageBoxButtons.YesNo);
    if (dialogResult == DialogResult.Yes)
    {
    try
    {

                    setConnection();
                    sql\_con.Open();
    
                    using (OleDbCommand cmd1 = sql\_con.CreateCommand())
                    {
                        
                        cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com)";
                        cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                        //sql\_cmd = new OleDbCommand(CommandText, sql\_con);
                        cmd1.ExecuteNonQuery();
                        //ADODB.Recordset dbrst = new ADODB.Recordset();
                    }
    
                    long Qte\_prod, numCmd;
                    string ref\_prod;
                    
    
                    using (OleDbCommand cmd2 = sql\_con.CreateCommand())
                    {
                        //setConnection();
                        
                        cmd2.CommandText = "SELECT MAX(num\_com) AS dernier\_num FROM Commandes";
                        // cmd2.Connection.Open();
                       // sql\_con.Open();
                        object result = cmd2.ExecuteScalar();
                        if (result is null || Convert.IsDBNull(result))
                        {
                            numCmd = 0;
                        }
                        else
                        {
                            numCmd = Convert.ToInt64(result);
                            TxtNunCmd.Text = numCmd.ToString();
    
    
                            //LoadDB();
                            //object result1 = cmd3.ExecuteScalar();
                            for (int i = 0; i < dataGridView1.
    
    OriginalGriffO 1 Reply Last reply
    0
    • A ago2486

      good evening gentlemen and thank you to you who brought me help but I am continuing my project and I have a problem retrieving info from one table to insert it into another.
      I have three tables which are related
      1.product (article_ID, design, price_U, Qty)
      2.order (com_number, com_date, com_amount)
      3.detail_command (num_det, num_com, ID_article, qute_det)
      I can't fill the detail_commende table. It must be said that I am lost. can you put me on the track please
      I may have made a serious mistake in my codes.

      private void BtnValider_Click(object sender, EventArgs e)
      {
      DialogResult dialogResult = MessageBox.Show("Voulez vous valider la facture?", "VALIDATION DE LA FACTURE", MessageBoxButtons.YesNo);
      if (dialogResult == DialogResult.Yes)
      {
      try
      {

                      setConnection();
                      sql\_con.Open();
      
                      using (OleDbCommand cmd1 = sql\_con.CreateCommand())
                      {
                          
                          cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com)";
                          cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                          //sql\_cmd = new OleDbCommand(CommandText, sql\_con);
                          cmd1.ExecuteNonQuery();
                          //ADODB.Recordset dbrst = new ADODB.Recordset();
                      }
      
                      long Qte\_prod, numCmd;
                      string ref\_prod;
                      
      
                      using (OleDbCommand cmd2 = sql\_con.CreateCommand())
                      {
                          //setConnection();
                          
                          cmd2.CommandText = "SELECT MAX(num\_com) AS dernier\_num FROM Commandes";
                          // cmd2.Connection.Open();
                         // sql\_con.Open();
                          object result = cmd2.ExecuteScalar();
                          if (result is null || Convert.IsDBNull(result))
                          {
                              numCmd = 0;
                          }
                          else
                          {
                              numCmd = Convert.ToInt64(result);
                              TxtNunCmd.Text = numCmd.ToString();
      
      
                              //LoadDB();
                              //object result1 = cmd3.ExecuteScalar();
                              for (int i = 0; i < dataGridView1.
      
      OriginalGriffO Offline
      OriginalGriffO Offline
      OriginalGriff
      wrote on last edited by
      #2

      First off, you cannot assume that the last INSERT you did is the last INSERT done by the system - if you have multiple users then their INSERTS can happen at any time. So instead of a separate SELECT to return the maximum value issue a combination command which does the INSERT and returns the value of the IDENTITY field:

      INSERT INTO ...; SELECT SCOPE_IDENTITY();

      And it will return the IDENTITY vlaue associated with your INSERT as a scalar value. This is assuming that the commandes table you speak of is actually the detail_command you describe at the top of your question - but if it isn't, then that would explain why you are having trouble with getting it to work ... Oh, and BTW: I think we've mentioned that you shouldn't recycle SqlConnections before - create them in a using block and they will be Disposed correctly when you are finished with them. If you must faff with them like you are, then don't close the connection in the main code and the catch block - add a finally block to your try and close it there.

      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
      "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

      A 1 Reply Last reply
      0
      • OriginalGriffO OriginalGriff

        First off, you cannot assume that the last INSERT you did is the last INSERT done by the system - if you have multiple users then their INSERTS can happen at any time. So instead of a separate SELECT to return the maximum value issue a combination command which does the INSERT and returns the value of the IDENTITY field:

        INSERT INTO ...; SELECT SCOPE_IDENTITY();

        And it will return the IDENTITY vlaue associated with your INSERT as a scalar value. This is assuming that the commandes table you speak of is actually the detail_command you describe at the top of your question - but if it isn't, then that would explain why you are having trouble with getting it to work ... Oh, and BTW: I think we've mentioned that you shouldn't recycle SqlConnections before - create them in a using block and they will be Disposed correctly when you are finished with them. If you must faff with them like you are, then don't close the connection in the main code and the catch block - add a finally block to your try and close it there.

        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

        A Offline
        A Offline
        ago2486
        wrote on last edited by
        #3

        thank you for your answer but I wanted to point out that (num_com) is auto-incremente. I would like to know if that doesn't count?

        OriginalGriffO 1 Reply Last reply
        0
        • A ago2486

          thank you for your answer but I wanted to point out that (num_com) is auto-incremente. I would like to know if that doesn't count?

          OriginalGriffO Offline
          OriginalGriffO Offline
          OriginalGriff
          wrote on last edited by
          #4

          Yes, that's the whole point. That is what an IDENTITY field in SQL Server is. And when you use autoincremented fields you can't rely on the MAX value to be the one you inserted: you do your INSERT, then two dozen other users add their own before you issue your SELECT. YOur MAX then fetches the ID for a totally different row, and you start to get intermittent problems that are fiendishly difficult to duplicate, track down, fix, and prove. Using SCOPE_IDENTITY returns the last autoincremented value used by that connection, and will never return values from different users.

          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
          "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

          A 1 Reply Last reply
          0
          • OriginalGriffO OriginalGriff

            Yes, that's the whole point. That is what an IDENTITY field in SQL Server is. And when you use autoincremented fields you can't rely on the MAX value to be the one you inserted: you do your INSERT, then two dozen other users add their own before you issue your SELECT. YOur MAX then fetches the ID for a totally different row, and you start to get intermittent problems that are fiendishly difficult to duplicate, track down, fix, and prove. Using SCOPE_IDENTITY returns the last autoincremented value used by that connection, and will never return values from different users.

            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

            A Offline
            A Offline
            ago2486
            wrote on last edited by
            #5

            OK well sir and I just found her in my research, are I adapting well to my code?
              using (OleDbCommand cmd1 = sql_con.CreateCommand ())
                                 {
                                    
                                     cmd1.CommandText = "INSERT INTO Orders (amount_com) VALUES (@montant_com)";
                                     cmd1.CommandText = "SELECT @@ IDENTITY";
                                     int id = Convert.ToInt32 (cmd1.ExecuteScalar ());
                                     cmd1.Parameters.AddWithValue ("@ amount_com", TxtTotalCmd.Text);
                                     cmd1.ExecuteNonQuery ();
                                 }

            OriginalGriffO 1 Reply Last reply
            0
            • A ago2486

              OK well sir and I just found her in my research, are I adapting well to my code?
                using (OleDbCommand cmd1 = sql_con.CreateCommand ())
                                   {
                                      
                                       cmd1.CommandText = "INSERT INTO Orders (amount_com) VALUES (@montant_com)";
                                       cmd1.CommandText = "SELECT @@ IDENTITY";
                                       int id = Convert.ToInt32 (cmd1.ExecuteScalar ());
                                       cmd1.Parameters.AddWithValue ("@ amount_com", TxtTotalCmd.Text);
                                       cmd1.ExecuteNonQuery ();
                                   }

              OriginalGriffO Offline
              OriginalGriffO Offline
              OriginalGriff
              wrote on last edited by
              #6

              Stop guessing. Start thinking. Look at your code and tell me what is wrong with it. Where have we seen that problem before?

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

              A 1 Reply Last reply
              0
              • OriginalGriffO OriginalGriff

                Stop guessing. Start thinking. Look at your code and tell me what is wrong with it. Where have we seen that problem before?

                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                A Offline
                A Offline
                ago2486
                wrote on last edited by
                #7

                Ok my apologies, this is the error I get
                System.Data.Oledb.Ole Exception (0x80040E14): Character found after the end of the Sql instruction

                using (OleDbCommand cmd1 = sql_con.CreateCommand())
                {

                                    cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com);" + "SELECT SCOPE\_IDENTITY()";
                                   
                                    int id;
                                    cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                                  
                                    cmd1.ExecuteNonQuery();
                                    id = (int)cmd1.ExecuteScalar();
                                    TxtNunCmd.Text = id.ToString();
                
                                }
                
                OriginalGriffO 2 Replies Last reply
                0
                • A ago2486

                  Ok my apologies, this is the error I get
                  System.Data.Oledb.Ole Exception (0x80040E14): Character found after the end of the Sql instruction

                  using (OleDbCommand cmd1 = sql_con.CreateCommand())
                  {

                                      cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com);" + "SELECT SCOPE\_IDENTITY()";
                                     
                                      int id;
                                      cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                                    
                                      cmd1.ExecuteNonQuery();
                                      id = (int)cmd1.ExecuteScalar();
                                      TxtNunCmd.Text = id.ToString();
                  
                                  }
                  
                  OriginalGriffO Offline
                  OriginalGriffO Offline
                  OriginalGriff
                  wrote on last edited by
                  #8

                  That's better!

                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                  "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                  1 Reply Last reply
                  0
                  • A ago2486

                    Ok my apologies, this is the error I get
                    System.Data.Oledb.Ole Exception (0x80040E14): Character found after the end of the Sql instruction

                    using (OleDbCommand cmd1 = sql_con.CreateCommand())
                    {

                                        cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com);" + "SELECT SCOPE\_IDENTITY()";
                                       
                                        int id;
                                        cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                                      
                                        cmd1.ExecuteNonQuery();
                                        id = (int)cmd1.ExecuteScalar();
                                        TxtNunCmd.Text = id.ToString();
                    
                                    }
                    
                    OriginalGriffO Offline
                    OriginalGriffO Offline
                    OriginalGriff
                    wrote on last edited by
                    #9

                    OK, the edited version makes a little more sense. You need to split your command into two: Do the INSERT, then build a new Command to do the SELECT (some DB engines don't like command chaining). As long as you use the same connection and you don't close it in between the INSERT and SELECT, you'll be fine.

                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                    A 2 Replies Last reply
                    0
                    • OriginalGriffO OriginalGriff

                      OK, the edited version makes a little more sense. You need to split your command into two: Do the INSERT, then build a new Command to do the SELECT (some DB engines don't like command chaining). As long as you use the same connection and you don't close it in between the INSERT and SELECT, you'll be fine.

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                      A Offline
                      A Offline
                      ago2486
                      wrote on last edited by
                      #10

                      I just did it but I have an error: the function 'SCOPE_IDENTITY' not defined in the expression

                                      using (OleDbCommand cmd1 = sql\_con.CreateCommand())
                                      {
                                          
                                          cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com)";
                                          cmd1.CommandText = "SELECT SCOPE\_IDENTITY()";
                                          
                                          cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                                        
                                          cmd1.ExecuteNonQuery();
                                          int id = Convert.ToInt32(cmd1.ExecuteScalar());
                                          TxtNunCmd.Text = id.ToString();
                      
                                      }
                      
                      1 Reply Last reply
                      0
                      • OriginalGriffO OriginalGriff

                        OK, the edited version makes a little more sense. You need to split your command into two: Do the INSERT, then build a new Command to do the SELECT (some DB engines don't like command chaining). As long as you use the same connection and you don't close it in between the INSERT and SELECT, you'll be fine.

                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                        A Offline
                        A Offline
                        ago2486
                        wrote on last edited by
                        #11

                        and I wanted to clarify that I am on an access database

                        OriginalGriffO 1 Reply Last reply
                        0
                        • A ago2486

                          and I wanted to clarify that I am on an access database

                          OriginalGriffO Offline
                          OriginalGriffO Offline
                          OriginalGriff
                          wrote on last edited by
                          #12

                          Ah. That makes a difference. Access doesn't support SCOPE_IDENTITY: You need to use @@IDENTITY instead.

                          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                          "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                          A 1 Reply Last reply
                          0
                          • OriginalGriffO OriginalGriff

                            Ah. That makes a difference. Access doesn't support SCOPE_IDENTITY: You need to use @@IDENTITY instead.

                            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                            A Offline
                            A Offline
                            ago2486
                            wrote on last edited by
                            #13

                            it’s already done sir but what I don't understand textbox does not recover the id, it displays zero

                            using (OleDbCommand cmd1 = sql_con.CreateCommand())
                            {

                                                cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com)";
                                                cmd1.CommandText = "SELECT @@IDENTITY";
                                                
                                                cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                                              
                                                //sql\_cmd = new OleDbCommand(CommandText, sql\_con);
                                                cmd1.ExecuteNonQuery();
                                                 id = (int)cmd1.ExecuteScalar();
                                                TxtNunCmd.Text = id.ToString();
                                            }
                            
                            OriginalGriffO 1 Reply Last reply
                            0
                            • A ago2486

                              it’s already done sir but what I don't understand textbox does not recover the id, it displays zero

                              using (OleDbCommand cmd1 = sql_con.CreateCommand())
                              {

                                                  cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com)";
                                                  cmd1.CommandText = "SELECT @@IDENTITY";
                                                  
                                                  cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                                                
                                                  //sql\_cmd = new OleDbCommand(CommandText, sql\_con);
                                                  cmd1.ExecuteNonQuery();
                                                   id = (int)cmd1.ExecuteScalar();
                                                  TxtNunCmd.Text = id.ToString();
                                              }
                              
                              OriginalGriffO Offline
                              OriginalGriffO Offline
                              OriginalGriff
                              wrote on last edited by
                              #14

                              Do you know what the wonderful thing about banging your head on the desk is? Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* It feels wonderful when you stop ... We've been here before. Yesterday in fact. Look at your code. What can you see that is wrong?

                              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                              A L 2 Replies Last reply
                              0
                              • OriginalGriffO OriginalGriff

                                Do you know what the wonderful thing about banging your head on the desk is? Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* It feels wonderful when you stop ... We've been here before. Yesterday in fact. Look at your code. What can you see that is wrong?

                                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                                A Offline
                                A Offline
                                ago2486
                                wrote on last edited by
                                #15

                                :doh: :doh: :doh: :doh: you are right sir and I promise you find the solution and you ride it

                                OriginalGriffO 1 Reply Last reply
                                0
                                • A ago2486

                                  :doh: :doh: :doh: :doh: you are right sir and I promise you find the solution and you ride it

                                  OriginalGriffO Offline
                                  OriginalGriffO Offline
                                  OriginalGriff
                                  wrote on last edited by
                                  #16

                                  :laugh:

                                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                  "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                  1 Reply Last reply
                                  0
                                  • OriginalGriffO OriginalGriff

                                    Do you know what the wonderful thing about banging your head on the desk is? Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* Desk *BANG* It feels wonderful when you stop ... We've been here before. Yesterday in fact. Look at your code. What can you see that is wrong?

                                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                                    L Offline
                                    L Offline
                                    Luc Pattyn
                                    wrote on last edited by
                                    #17

                                    it probably is too early to stop. :rolleyes:

                                    Luc Pattyn [My Articles] Nil Volentibus Arduum

                                    OriginalGriffO 1 Reply Last reply
                                    0
                                    • L Luc Pattyn

                                      it probably is too early to stop. :rolleyes:

                                      Luc Pattyn [My Articles] Nil Volentibus Arduum

                                      OriginalGriffO Offline
                                      OriginalGriffO Offline
                                      OriginalGriff
                                      wrote on last edited by
                                      #18

                                      You had to say that, didn't you? :laugh: Desk *BANG* Desk *BANG* Desk *BANG* ...

                                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                      "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                      A 2 Replies Last reply
                                      0
                                      • OriginalGriffO OriginalGriff

                                        You had to say that, didn't you? :laugh: Desk *BANG* Desk *BANG* Desk *BANG* ...

                                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                                        A Offline
                                        A Offline
                                        ago2486
                                        wrote on last edited by
                                        #19

                                        yes yes sir I am still looking for, I will find it, I assure you sir

                                        :doh: :doh: :doh: :doh:

                                        1 Reply Last reply
                                        0
                                        • OriginalGriffO OriginalGriff

                                          You had to say that, didn't you? :laugh: Desk *BANG* Desk *BANG* Desk *BANG* ...

                                          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony AntiTwitter: @DalekDave is now a follower!

                                          A Offline
                                          A Offline
                                          ago2486
                                          wrote on last edited by
                                          #20

                                          using (OleDbCommand cmd1 = sql_con.CreateCommand())
                                          {

                                                              cmd1.CommandText = "INSERT INTO Commandes (montant\_com) VALUES (@montant\_com)";
                                                              OleDbCommand cmr = sql\_con.CreateCommand();
                                                              cmr.CommandText = "SELECT @@IDENTITY AS LastId";
                                                              
                                                              cmd1.Parameters.AddWithValue("@montant\_com", TxtTotalCmd.Text);
                                                              id = (int)cmr.ExecuteScalar();
                                                              TxtNunCmd.Text = id.ToString();
                                                             
                                                              cmd1.ExecuteNonQuery();
                                                            
                                                          }
                                          

                                          but i can't get the id

                                          OriginalGriffO 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups