Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    178

    Incremetare campo Database Visual basic e Sql Server

    ciao, ho il seguente problema:

    leggo dal campo numero e anno della Tabella Fattura il valore.

    Ho fatto si che dal campo numero sommo il valore + 1 dopo ogni sua pressione però non riesco ad aggiornare il campo del database che ho letto i valori in precedenza.

    chi mi sa dare una mano?

    codice:
         
    
    Dim connection As New SqlClient.SqlConnection         
    Dim command As New SqlClient.SqlCommand 
             
    connection.ConnectionString = ("Data Source=MARCO-FERRARIS;Initial Catalog=Prova;Integrated Security=True") 
            
    command.Connection = connection         
    command.CommandType = CommandType.Text   
          
    command.CommandText = "SELECT * FROM Fattura"     
        
    connection.Open()          
    
    Dim myDataReader As SqlClient.SqlDataReader = command.ExecuteReader()          
    
    While myDataReader.Read  
               
    txtSum.Text = myDataReader.Item("numero")     
        
    End While        
    
    myDataReader.Close()         
    connection.Close()          
    
    Dim a = txtSum.Text          
    Dim b As New Integer          
    
    b = a + 1          
    
    txtSum.Text = b          
    
    Dim conn As New SqlClient.SqlConnection         
    Dim comm As New SqlClient.SqlCommand         
    
    conn.ConnectionString = ("Data Source=MARCO-FERRARIS;Initial Catalog=Prova;Integrated Security=True")    
         
    comm.Connection = conn         
    comm.CommandType = CommandType.Text 
            
    comm.CommandText = "UPDATE Fattura SET numero= numero+1 Where numero='" & b & "'"         
    
    connection.Open()          
    comm.Connection = conn

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Ma scusa che senso ha assegnare alla proprietà .Text di una TextBox il valore di n record di una campo ?
    Ovviamente la proprietà .Text della TextBox sarà dell'ultimo record letto ?

    Sei sicuro di quello che stai facendo?

    Il codice che hai postato, ovvero:

    codice:
    While myDataReader.Read  
               
    txtSum.Text = myDataReader.Item("numero")     
        
    End While
    non ha senso, ovvero potrebbe averlo se la tabella ha un solo Record, ma se così fosse non avrebbe senso a quel punto utilizzare il .DataReader
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Intanto che ci pensi ti posto il codice corretto, perchè la seconda parte che hai scritto, quella relativa all'aggiornamento del campo Numero è scorretta:

    codice:
     Dim connection As New SqlClient.SqlConnection
            Dim command As New SqlClient.SqlCommand
    
            connection.ConnectionString = ("Data Source=ufficiotecnico\SQLEXPRESS;Initial Catalog=DB_Gestionale;Integrated Security=True")
            command.Connection = connection
            command.CommandType = CommandType.Text
            command.CommandText = "SELECT * FROM Fattura"
            connection.Open()
    
            Dim myDataReader As SqlClient.SqlDataReader = command.ExecuteReader()
    
            While myDataReader.Read
                txtSum.Text = myDataReader.Item("numero")   'NON HA SENSO
            End While
    
            myDataReader.Close()
            connection.Close()
    
            txtSum.Text = (CInt(txtSum.Text) + 1).ToString
    
            command.CommandText = "UPDATE Fattura SET Numero=@valore WHERE FatturaID='45453454f455'"
            command.Parameters.AddWithValue("@valore", txtSum.Text)
            connection.Open()
            Dim rowChanged As Integer = command.ExecuteNonQuery
    Sbagliare è umano, perseverare è diabolico.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    178
    ti ringrazio, dei consigli... si hai ragione, quello che ho fatto ha poco senso ma mi serviva per rintracciare il valore che poi devo incrementare quando premo il pulsante per chiudere la fattura e per emetterne una nuova. Ora ci attacco la seconda tabella in Join per l'inserimento dei dati del cliente e degli articoli della fattura.

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da m_ferraris
    ti ringrazio, dei consigli... si hai ragione, quello che ho fatto ha poco senso ma mi serviva per rintracciare il valore che poi devo incrementare quando premo il pulsante per chiudere la fattura e per emetterne una nuova. Ora ci attacco la seconda tabella in Join per l'inserimento dei dati del cliente e degli articoli della fattura.
    E' una prassi poco convincente...
    Il tuo programma viene utilizzato in multi-utenza?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    178
    ciao, il programma è usato in singola utenza. E' strutturato così

    Ho 3 tabelle:

    una si chiama Fattura dove ci sono i campi :

    FatturaID
    numero
    anno

    fatturaID e numero sono le primary key

    una si chiama Ordini dove ci sono i campi:

    OrdineID
    Quantita
    Descrizione
    Prezzo

    e una generale che si chiama Fattura_Generale:

    Fattura_GeneraleID
    FatturaID
    QuantitaID
    UserID
    ClienteID
    BancaID
    data
    iva
    imponibile
    imposta
    marca_bollo

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.