Avatar billede albani Nybegynder
09. maj 2007 - 11:43 Der er 4 kommentarer og
1 løsning

selected listbox items into database

Hej

Hvordan får jeg ALLE valgte værdier fra min listbox over i databasen ? jeg kan ikke helt få mit loop til at virke...

protected void Button2_Click(object sender, EventArgs e)
      {
          if (Page.IsValid)
              {
              // Define data objects
                  SqlConnection conn;
                  SqlCommand comm;
 
              // Open the connection
                  string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
             
              // Initialize connection
                  conn = new SqlConnection(connectionString);
 
              // Create command
              comm = new SqlCommand("INSERT INTO TestTabel (TestNavn) VALUES (@TestNavn)",conn);
              // Add command parameters

             
              foreach (ListItem item in TestListBox.Items)
              {
                  if (item.Selected)
                  {
                     
                      comm.Parameters.Add("@TestNavn", System.Data.SqlDbType.NVarChar);
                      comm.Parameters["@TestNavn"].Value = item.Text;
                     
                  }
              }


              // Enclose database code in Try-Catch-Finally
              try
                  {
                  // Open the connection
                  conn.Open();
                  // Execute the command
                  comm.ExecuteNonQuery();
                  // Reload page if the query executed successfully
                  Response.Redirect("Default.aspx");
                  }
              catch(Exception Arg)
                  {
                    Response.Write(Arg.Message);   
                    // Display error message
                    Label1.Text = "Error !";
                  }
              finally
                  {
                  // Close the connection
                  conn.Close();
                  }
              }
          }
Avatar billede neoman Novice
09. maj 2007 - 12:37 #1
comm.ExecuteNonQuery kører en gang  - så den skal også ligge indenfor din  item.selected løkke. I det tilfælde ville jeg nok  smide
                comm.Parameters.Add("@TestNavn", System.Data.SqlDbType.NVarChar);
uden for samme løkke, da det er nok blot at ændre værdien som du jo gør i comm.Parameters["@TestNavn"].Value = item.Text;
Avatar billede albani Nybegynder
09. maj 2007 - 12:59 #2
neoman: takker ! jeg kan godt se fejlen nu..... men så skal jeg åbne og lukke forbindelsen hver gang i løkken?!? så virker det i hvert fald... er der en mere elegant måde at gøre det På ? (strengt taget ikke nødvendigt da det virker, blot at nysgerrighed, smider du lige et svar...)

    protected void Button2_Click(object sender, EventArgs e)
      {
          if (Page.IsValid)
              {
              // Define data objects
                  SqlConnection conn;
                  SqlCommand comm;
 
              // Open the connection
                  string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
             
              // Initialize connection
                  conn = new SqlConnection(connectionString);
 
              // Create command
              comm = new SqlCommand("INSERT INTO TestTabel (TestNavn) VALUES (@TestNavn)",conn);
              comm.Parameters.Add("@TestNavn", System.Data.SqlDbType.NVarChar);
              // Add command parameters

             
              foreach (ListItem item in TestListBox.Items)
              {
                  if (item.Selected)
                  {
                     
                      comm.Parameters["@TestNavn"].Value = item.Text;
                      // Open the connection
                      conn.Open();
                      // Execute the command
                      comm.ExecuteNonQuery();
                      // Close the connection
                      conn.Close();
                  }
              }


              // Enclose database code in Try-Catch-Finally
              try
                  {
                  // Reload page if the query executed successfully
                  Response.Redirect("Default.aspx");
                  }
              catch(Exception Arg)
                  {
                    Response.Write(Arg.Message);   
                    // Display error message
                    Label1.Text = "Error !";
                  }
              finally
                  {
                 
                 
                  }
              }
          }
Avatar billede albani Nybegynder
09. maj 2007 - 13:00 #3
nevermind.... jeg er en tåbe.... ! (har flyttet open op før løkken og close lige efter....  hader mig selv.... (lidt anyway)

smid blot et svar
Avatar billede neoman Novice
09. maj 2007 - 13:03 #4
hehe - man kan da også stirre sig blind : I know THAT feeling:)
Avatar billede albani Nybegynder
09. maj 2007 - 13:03 #5
For alle andre der skulle sidde med samme problem derude er her min endelige kode der virker :-) - i kan alle takke Neoman

    protected void Button2_Click(object sender, EventArgs e)
      {
          if (Page.IsValid)
              {
              // Define data objects
                  SqlConnection conn;
                  SqlCommand comm;
 
              // Open the connection
                  string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
             
              // Initialize connection
                  conn = new SqlConnection(connectionString);
 
              // Create command
              comm = new SqlCommand("INSERT INTO TestTabel (TestNavn) VALUES (@TestNavn)",conn);
              // Add command parameters
              comm.Parameters.Add("@TestNavn", System.Data.SqlDbType.NVarChar);
             

              // Open the connection
              conn.Open();


              foreach (ListItem item in TestListBox.Items)
              {
                  if (item.Selected)
                  {
                      comm.Parameters["@TestNavn"].Value = item.Text;
                     
                      // Execute the command
                      comm.ExecuteNonQuery();
                  }
              }

              // Enclose database code in Try-Catch-Finally
              try
                  {
                  // Reload page if the query executed successfully
                  Response.Redirect("Default.aspx");
                  }
              catch(Exception Arg)
                  {
                    Response.Write(Arg.Message);   
                    // Display error message
                    Label1.Text = "Error !";
                  }
              finally
                  {
                    // Close the connection
                    conn.Close();                 
                  }
              }
          }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester