Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138

    [vb express 2008] far scrivere due comandi dentro la stessa riga di access

    ho creato un ciclo dove all'interno vi sono due comandi INSERT. Uno inserisce un numero ripetuto preso da una textbox e l'altro inserisce un numero progressivo che viene preso da un'altra textbox. il problema che è all'esecuzione il programma fa scrivere i comandi una volta l'uno mentre io vorrei (che pur scrivendo in campi diversi) i dati delle due textbox fossero scritti nella stessa riga. ecco il codice scritto fino ad ora:
    codice:
    Imports ADOX
    Imports System.Data.OleDb
    Public Class Form1
        Dim archivio As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) + "/Database3.mdb")
    
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim contatore As Integer
            Dim Ripeti As Integer
    
    
            archivio.Open() 'Apri la connessione con il database
            contatore = 0
            Ripeti = TextBox1.Text
            Do
                Dim Codice_gioco As New OleDb.OleDbCommand("INSERT INTO ciao (Nome) VALUES ('" + Ripeti.ToString + "')", archivio)
                Dim com As New OleDb.OleDbCommand("INSERT INTO ciao (città) VALUES ('" + contatore.ToString + "')", archivio)
    
                Codice_gioco.ExecuteNonQuery()
                Ripeti = Ripeti
                com.ExecuteNonQuery() 'esegui comando SQL
                contatore = contatore + 1
            Loop While contatore <= TextBox3.Text
            Ripeti = contatore
    
            MsgBox("finito")
            archivio.Close() 'Chiudi la connessione con il database

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi usare una sola INSERT, non due.

    Studia la sintassi della INSERT

    http://www.w3schools.com/sql/sql_insert.asp

    e modifica il codice di conseguenza
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    si ma a me serve che vengano scritte due operazioni diverse sulla stessa riga e su due colonne separate..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ho capito ... la INSERT è una sola sulle due colonne ... studiala (hai aperto il link?)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    ho fatto così
    codice:
    Imports ADOX
    Imports System.Data.OleDb
    Public Class Form1
        Dim archivio As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) + "/Database3.mdb")
    
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim contatore As Integer
            Dim Ripeti As Integer
    
    
            archivio.Open() 'Apri la connessione con il database
            contatore = 0
            Ripeti = TextBox1.Text
            Do
                Dim Codice_gioco As New OleDb.OleDbCommand("INSERT INTO ciao (Nome, città) VALUES ('" + Ripeti.ToString + contatore.ToString + "')", archivio)
                Dim com As New OleDb.OleDbCommand
    
                Codice_gioco.ExecuteNonQuery()
                Ripeti = Ripeti
                com.ExecuteNonQuery() 'esegui comando SQL
                contatore = contatore + 1
            Loop While contatore <= TextBox3.Text
            Ripeti = contatore
    
            MsgBox("finito")
            archivio.Close() 'Chiudi la connessione con il database
    
    
    
    
        End Sub
    End Class
    ma di dice "Il numero dei valori nella query non corrisponde a quello dei campi di destinazione." dove sbaglio ?

  6. #6
    INSERT INTO nome_tabella (Colonna1, Colonna2, ..., ColonnaN) VALUES (Valore1, Valore2, ... ValoreN)

    ovviamente
    ---> ValoreX se numerico
    ---> 'ValoreX' se alfanumerico


  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    non ho scritto questo io ?

  8. #8
    no

    tu hai scritto

    "INSERT INTO ciao (Nome, città) VALUES ('" + Ripeti.ToString + contatore.ToString + "')

    dovresti scrivere

    "INSERT INTO ciao (Nome, città) VALUES ('" + Ripeti.ToString + "','" + contatore.ToString + "')"

    i due campi erano concatenati e non distinti

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte quello che ti ha giustamente detto optime, questa riga

    Ripeti = Ripeti

    che senso ha secondo te?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    A parte quello che ti ha giustamente detto optime, questa riga

    Ripeti = Ripeti

    che senso ha secondo te?
    quello di fare ripetere il codice.

    comunque ci sono riuscito solo che a me serve che la serie di numeri segua questo percorso : (000,001,002....) ho provato a impostare il valore della variabile contatore a 000 e a farla incrementare di 001 ma vb me lo corregge riportando il tutto a 0 e a 1. in sostanza mi elimina automaticamente i due zeri che aggiungo io, considerandoli superfui..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.