Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB.NET] modifica di un record mdb con ado

    Salve
    non riesco a trovare il comando per modificare un record di un database tramite ado.net.

    ho però inserito e letto il database
    Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =D:\Gestione integrata PPA\Immagini.mdb"
    Dim objconn As New OleDbConnection(ConnString) 'stringa di connessione al database
    Dim objcomm As OleDbCommand 'da comandi al database
    Dim stringasql As String 'memorizzo in questa variabile le istruzioni sql


    objconn.Open()

    stringasql = "Select * from compue Where 'rif_ril=A01'"
    Dim objcomm As New OleDb.OleDbCommand(stringasql, objconn)

    Dim dr As OleDbDataReader = objcomm.ExecuteReader()

    While dr.Read

    MsgBox(dr.Item(0) & " - " & dr.Item(1) & " - " & dr.Item(2))
    End While

    qualcuno mi può aiutare
    grazie
    ciao

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Nel tuo codice, si sta facendo un caricamento tramite uno statement SQL di SELECT, mentre quello che tu devi eseguire è semplicemente uno statement di UPDATE, utilizzando sempre la classe OleDbCommand.

    Leggi la documentazione MSDN a riguardo, dove troverai anche degli esempi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Ho fatto un po di ricerche ed ho scritto queste righe

    stringasql = "UPDATE compue SET comp_pro = '" & compro & "', unedi_pro = '" & uepro & "' WHERE 'rif_ril= " & comril & ueril & "'"

    Dim objcomm1 As New OleDb.OleDbCommand(stringasql, objconn)

    Dim dr1 As OleDbDataReader = objcomm1.ExecuteReader()

    Però c'è un problema.

    Invece di modificare una solo record, lo fa di una colonna intera...........

    cosa ho sbagliato?

    ciao

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da raamino73
    Ho fatto un po di ricerche ed ho scritto queste righe
    Di sicuro, negli esempi che hai trovato non viene utilizzata la classe OleDbDataReader, che in questo contesto non ti serve, dato che non devi leggere un recordset o un dato, ma solo eseguire il comando di aggiornamento.

    Originariamente inviato da raamino73
    stringasql = "UPDATE compue SET comp_pro = '" & compro & "', unedi_pro = '" & uepro & "' WHERE 'rif_ril= " & comril & ueril & "'"
    In secondo luogo, usa la classe OleDbParameter (vedi la documentazione MSDN a riguardo) per definire parametri nella query e andarli a valorizzare correttamente, senza fare un concatenamento complesso come quello rappresentato qui sopra.

    Originariamente inviato da raamino73
    Però c'è un problema.
    Invece di modificare una solo record, lo fa di una colonna intera...........
    cosa ho sbagliato?
    Probabilmente, c'è un errore nella clausola WHERE dell'istruzione SQL, che non filtra correttamente i record e li identifica tutti come candidati per l'aggiornamento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.