andrea_spa
31-03-2008, 16:13
In un programma utilizzo una datagridview associata ad una tabella di access, attraverso un pulsante carico e visualizzo i dati della tabella e con un altro dovrei salvarli, dovrei perchè in realtà ciò non accade. Utilizzo il seguente codice relativo a quanto descritto:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'Questo codice non è il più efficiente, ma per ora va bene
'Stringa che contiene il comando SQL per inserire nuovi dati
Dim sqlInsert As String
'Stringa che contiene il comando SQL per rimuovere i vecchi dati
Dim sqlDelete As String
'Risultato dell'operazione (non usato)
Dim Result As Integer
'Il comando comunica di eliminare tutti i campi (e perciò anche tutti i record) dalla tabella Clienti
sqlDelete = "DELETE * FROM `Clienti`"
'Imposta la connessione da usare
dbCmd.Connection = dbCon
'Imposta il comando da usare
dbCmd.CommandText = sqlDelete
'Esegue il comando (se result=0 il comando è fallito)
Result = dbCmd.ExecuteNonQuery()
'Per ogni riga in datagridview, trannel'ultima (che è sempre vuota)
For R As Int32 = 0 To dgvGrid.Rows.Count - 2
'Costruisce l'istruzione
sqlInsert = "INSERT INTO `Clienti` VALUES("
For C As Int32 = 0 To dgvGrid.Columns.Count - 1
If dgvGrid(C, R).Value = Nothing Or dgvGrid(C, R).Value = "" Then
sqlInsert += "'0'"
Else
sqlInsert += "'" & dgvGrid(C, R).Value & "'"
End If
If C < dgvGrid.Columns.Count - 1 Then
sqlInsert += ", "
End If
Next
sqlInsert += ")"
'Imposta il comando da usare
dbCmd.CommandText = sqlInsert
'Esegue il comando
Result = dbCmd.ExecuteNonQuery()
Next
End Sub
Ovviamente questo è riferito al solo salvataggio che non avviene; sapete dirmi cosa sbaglio? Correzioni da apportare?
Grazie di tutto
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'Questo codice non è il più efficiente, ma per ora va bene
'Stringa che contiene il comando SQL per inserire nuovi dati
Dim sqlInsert As String
'Stringa che contiene il comando SQL per rimuovere i vecchi dati
Dim sqlDelete As String
'Risultato dell'operazione (non usato)
Dim Result As Integer
'Il comando comunica di eliminare tutti i campi (e perciò anche tutti i record) dalla tabella Clienti
sqlDelete = "DELETE * FROM `Clienti`"
'Imposta la connessione da usare
dbCmd.Connection = dbCon
'Imposta il comando da usare
dbCmd.CommandText = sqlDelete
'Esegue il comando (se result=0 il comando è fallito)
Result = dbCmd.ExecuteNonQuery()
'Per ogni riga in datagridview, trannel'ultima (che è sempre vuota)
For R As Int32 = 0 To dgvGrid.Rows.Count - 2
'Costruisce l'istruzione
sqlInsert = "INSERT INTO `Clienti` VALUES("
For C As Int32 = 0 To dgvGrid.Columns.Count - 1
If dgvGrid(C, R).Value = Nothing Or dgvGrid(C, R).Value = "" Then
sqlInsert += "'0'"
Else
sqlInsert += "'" & dgvGrid(C, R).Value & "'"
End If
If C < dgvGrid.Columns.Count - 1 Then
sqlInsert += ", "
End If
Next
sqlInsert += ")"
'Imposta il comando da usare
dbCmd.CommandText = sqlInsert
'Esegue il comando
Result = dbCmd.ExecuteNonQuery()
Next
End Sub
Ovviamente questo è riferito al solo salvataggio che non avviene; sapete dirmi cosa sbaglio? Correzioni da apportare?
Grazie di tutto