Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - colonna identity  in DataGridView
Forum - C# / VB.NET - colonna identity in DataGridView

Avatar
francovacchiano (Normal User)
Rookie


Messaggi: 29
Iscritto: 28/10/2008

Segnala al moderatore
Postato alle 20:36
Mercoledì, 10/12/2008
Per salvare i dati nella DataGridView uso questo
codice:
Codice sorgente - presumibilmente Delphi

  1. If (dtsDati.HasChanges) Then
  2.             ans = MsgBox("Changes have occurred!" & vbCrLf & "Do you wish to update?", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Updates")
  3.             If ans = vbYes Then
  4.                 objDatiAdapterGriglia.InsertCommand = cmdBuild.GetInsertCommand
  5.                 objDatiAdapterGriglia.DeleteCommand = cmdBuild.GetDeleteCommand
  6.                 objDatiAdapterGriglia.UpdateCommand = cmdBuild.GetUpdateCommand
  7.                 Try
  8.                     objDatiAdapterGriglia.Update(dtsDati.Tables("TabDettaglioFatture"))
  9.                     dtsDati.AcceptChanges()
  10.                 Catch exManual As Exception
  11.                     MsgBox(exManual.Message)
  12.                     'Throw exManual
  13.                Finally
  14.                    MsgBox("hi")
  15.                End Try
  16.                MsgBox("Table updated!", MsgBoxStyle.Critical, "TabDettaglioFatture")
  17.            End If
  18.        End If
  19. Quando modifico le colonne richiamate o aggiungo alla fine una nuova riga tutto ok.
  20. Se provo ad aggiungere una nuova riga al centro di quelle già presenti nella DataGridView, con questo codice:
  21.  
  22.        Dim myNewRow As DataRow = dttDati2.NewRow()
  23.        dttDati2.Rows.InsertAt(myNewRow, 2)
  24.        dttDati2.AcceptChanges()



in fase di salvataggio mi da il famoso errore sul campo Identity:
Violazione di concorrenza: UpdateCommand ha modificato 0 dei 1 record previsti.

Avete suggerimenti ? Grazie

Ultima modifica effettuata da Il Totem il 14/12/2008 alle 16:44
PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 7:04
Sabato, 13/12/2008
Ciao,
forse ho capito qual'è il tuo problema
ma non riesco a capire cos'è l'oggetto che hai nominato dtsDati potresti fornire un progetto o un listato più completo?

PM Quote
Avatar
francovacchiano (Normal User)
Rookie


Messaggi: 29
Iscritto: 28/10/2008

Segnala al moderatore
Postato alle 15:54
Domenica, 14/12/2008
Questo è il codice che uso:

Codice sorgente - presumibilmente VB.NET

  1. ' dichiarazioni
  2.     Private dttDati As DataTable
  3.     Private dttDati2 As DataTable
  4.     Private objDatiAdapterGriglia As OleDb.OleDbDataAdapter 'Odbc.OdbcDataAdapter
  5.     Private sServerSql = ".\SQLEXPRESS"
  6.     Private sDataBase = "DataBaseFatture"
  7.     Private conDati As OleDbConnection = New OleDbConnection("Provider=SQLNCLI;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & sDataBase & ";Data Source=" & sServerSql & ";Connect Timeout=5")
  8.     Private objBindingSource As New BindingSource
  9.  
  10.  
  11. '------alimenta DataGridView1
  12.     Private Sub CaricaGriglia(ByVal nNumero As Integer, ByVal dData As Date)
  13.     Private dttDati As DataTable
  14.     Private dttDati2 As DataTable
  15.     Private objDatiAdapterGriglia As OleDb.OleDbDataAdapter 'Odbc.OdbcDataAdapter
  16.  
  17.        objDatiAdapterGriglia = New OleDb.OleDbDataAdapter("SELECT NumeroFattura, DataFattura,  Tipo, NumeroCampione, AnnoSolareCampione, Descrizione, Importo, Qt, Sconto, ImportoNetto, CodiceIva, Iva, RigaDettaglio, ID FROM TabDettaglioFatture WHERE Tipo=1 AND NumeroFattura = " & nNumero, conDati)
  18.  
  19.         Dim builder As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(objDatiAdapterGriglia)
  20.         builder.QuotePrefix = "["
  21.         builder.QuoteSuffix = "]"
  22.  
  23.         dtsDati = New DataSet()
  24.         objDatiAdapterGriglia.Fill(dtsDati, "TabDettaglioFatture")     'Carico il dataset
  25.         dttDati2 = dtsDati.Tables("TabDettaglioFatture")
  26.         Me.DataGridView1.DataSource = dtsDati
  27.         Me.DataGridView1.DataMember = "TabDettaglioFatture"
  28.     End Sub
  29.  
  30. '----------Salvataggio dati
  31.    Private Sub PlsSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PlsSalva.Click
  32.         Dim ans As String
  33.         objBindingSource.EndEdit()
  34.         Dim cmdBuild As New OleDb.OleDbCommandBuilder(objDatiAdapterGriglia)
  35.         If (dtsDati.HasChanges) Then
  36.             ans = MsgBox("Changes have occurred!" & vbCrLf & "Do you wish to update?", MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Updates")
  37.             If ans = vbYes Then
  38.                 objDatiAdapterGriglia.InsertCommand = cmdBuild.GetInsertCommand
  39.                 objDatiAdapterGriglia.DeleteCommand = cmdBuild.GetDeleteCommand
  40.                 objDatiAdapterGriglia.UpdateCommand = cmdBuild.GetUpdateCommand
  41.                 Try
  42.                     objDatiAdapterGriglia.Update(dtsDati.Tables("TabDettaglioFatture"))
  43.                     dtsDati.AcceptChanges()
  44.                 Catch exManual As Exception
  45.                 Finally
  46.                     MsgBox("hi")
  47.                 End Try
  48.                 MsgBox("Table updated!", MsgBoxStyle.Critical, "TabDettaglioFatture")
  49.             End If
  50.         End If
  51.     End Sub


Ultima modifica effettuata da Il Totem il 14/12/2008 alle 16:45
PM Quote