Avatar billede linepigen1 Nybegynder
11. september 2003 - 12:32 Der er 3 kommentarer

gemme indhold af combox i database

Jeg skal have værdierne fra en combobox ned i en tabel i en database. Problemet er bare at trods for-løkken så får jeg kun det øverste felt fra comboboksen ned i databasen.

Dvs. der hvis der er 3 udfyldte felter i comboboksen hvor "Hans hansen" står øverst, så kommer der til at stå "Hans Hansen" 3 gange i tabellen.
Har testet med en msgbox og der kommer de forskellige navne frem men alstå ikke ned i tabellen!! Hvad er der galt?

Såfremt du kender en smartere metode at gemme indhold af en comboks i en tabel så fortæl endelig!

Min kode:

Minconn.Open()
GemKommenteredeCommand.Connection = Minconn       
For i = 0 To ComboBox8.Items.Count - 1
  With GemKommenteredeCommand
      .CommandText = "INSERT INTO Instruks_kommenteres_af (Instruks_nr, Kommenteres_af ) VALUES (@p_instruksnr, @p_KomAf)"
      With .Parameters
            .Add("@p_instruksnr", OleDbType.VarChar).Value = InstruksnrLB.Text
            .Add("@p_KomAf", OleDbType.VarChar).Value = ComboBox8.Items.Item(i)
      End With
      MsgBox(ComboBox8.Items.Item(i))
      .ExecuteNonQuery()
  End With
Next
Minconn.Close()
Avatar billede clausc Nybegynder
19. september 2003 - 21:24 #1
Så vidt jeg kan se, så add'er du 2 parametre til din Command i hvert gennemløb af løkken, og siden din Command kun skal bruge to, så ta'r den hver gang de to første.
Avatar billede linepigen1 Nybegynder
23. september 2003 - 09:42 #2
jeg tror ikke det er svaret. Instruksnummeret (den første parameter) skal være den samme i hvert gennemløb men som du kan se i anden parameter "ComboBox8.Items.Item(i)" bruger jeg - i - som tæller og det er hver linie i comboboksen som jeg vil have frem een efter een.
Avatar billede clausc Nybegynder
23. september 2003 - 12:45 #3
Din Command har 2 parametre og derfor bør hver parameter kun ADD'es præcis 1 og kun en gang.

Vi er vel enige om, at du kalder Command.Parameters.Add i hvert gennemløb. Dvs. @p_instruksnr bliver Add'et lige så mange gange som der er elementer i din Combo. Det er forkert.

Uden at garantere for syntaks, så prøv dette:

Minconn.Open()
GemKommenteredeCommand.Connection = Minconn       

With GemKommenteredeCommand
    .CommandText = "INSERT INTO Instruks_kommenteres_af
                    (Instruks_nr, Kommenteres_af ) VALUES
                    (@p_instruksnr, @p_KomAf)"
    With .Parameters
        .Add("@p_instruksnr", OleDbType.VarChar)
        .Add("@p_KomAf", OleDbType.VarChar)
    End With
End With

For i = 0 To ComboBox8.Items.Count - 1 
    With GemKommenteredeCommand
        .Parameters("@p_instruksnr").Value = InstruksnrLB.Text
        .Parameters("@p_KomAf").Value = ComboBox8.Items.Item(i)
    End With
     
    MsgBox(ComboBox8.Items.Item(i))
    GemKommenteredeCommand.ExecuteNonQuery()
Next

Minconn.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
Kurser inden for grundlæggende programmering

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