Ciao ragazzi, anche io sono da poco alle prese con il .net, no che abbia avuto grandi esperienze con vb6 ma qualcosina la facevo. ora per imparare sto facendo un piccolo progetto ma veramente banale per capire il dataset, il dataAdapter e così via. Allora ho un db access con una delle tabelle che si chiama "tcitta" con all'interno due campi che si chiamano rispettivamente "idcitta" e "citta" e un form sul quale ho piazzato un combobox, una textbox e un button. Il mio intento è caricare la combobox con i dati della tabella con il campo citta e fin qui tutto ok, poi inserire un nuovo record che scrivo nella textbox in seguito della pressione del button. Vi posto quello che ho fatto fin ora. l'errore lo indica sulla riga ultima della sub del button1_click "da.update(ds)"
Imports System.Data.OleDb
Imports system.Data.DataRow
Public Class Form1
Private ds As New DataSet
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Impostazione della connessione al Database.
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = C:\Documents and Settings\Antonino\Documenti\Visual Studio 2005\Projects\squesito.mdb"
Dim cn As New OleDb.OleDbConnection(strConn)
' Comando SQL per il recupero dei record.
Dim sql As String
sql = "SELECT citta FROM tcitta ORDER BY citta"
Dim cmd = New OleDb.OleDbCommand(sql, cn)
' Assegnamo il comando al DataAdapter.
Dim da As New OleDb.OleDbDataAdapter()
da.SelectCommand = cmd
' Apriamo la connessione.
cn.Open()
' Specifichiamo al DataAdapter di copiare, oltre ai dati, anche
' le informazioni relative alle chiavi definite nella tabella
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
' Riempiamo il DataSet specificando il nome della tabella.
ds.Clear()
da.Fill(ds, "tcitta")
ComboBox1.DataSource = ds.Tables("tcitta")
ComboBox1.DisplayMember = ds.Tables("tcitta").Columns("citta").ToString
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = C:\Documents and Settings\Antonino\Documenti\Visual Studio 2005\Projects\squesito.mdb"
Dim cn As New OleDb.OleDbConnection(strConn)
Dim sql As String
sql = "SELECT citta FROM tcitta ORDER BY citta"
Dim cmd As New OleDbCommand(sql, cn)
Dim da As New OleDb.OleDbDataAdapter()
da.SelectCommand = cmd
cn.Open()
' copia anche le chiavi
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
ds = New DataSet("tcitta")
ds.Clear()
da.Fill(ds, "tcitta")
Dim dr As DataRow = ds.Tables("tcitta").NewRow
dr("citta") = TextBox1.Text
ds.Tables("tcitta").Rows.Add(dr)
ds.Tables("tcitta").AcceptChanges()
da.Update(ds) ' è qui l'errore
End Sub
End Class