Manglende autogenereret ID fra db til dataset
HejJeg har et problem med at oprette/gemme data til database.
Jeg har følgende kode (uddrag) og hver for sig virker de fint. Jeg kan indlæse data fra databasen redigere lave nye og gemme i databasen igen.
Men problemet opstår når jeg opretter en ny post, (evt. gemmer i databasen), derefter redigerer den og så gemmer igen. Så kommer der flere poster i databasen med samme data.
Jeg har fundet ud af at problemet er at jeg ikke får opdateret det autogenererede ID som databasen indeholder til datasettet. derfor kan datasettet ikke finde den rigtige post at gemme det i i databasen.
Databasen er en MS Access database.
Hvordan får jeg løst mit problem ?
Meget gerne med kode eksempel.
mvh
jpi76
------------------------------------------------------------
'Forbindelse til database + indlæsning af data til DataAdapter/Dataset
_dbcn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & defaultDB & ";")
_dbcn.Open()
_dbcn = dbConn
_dbds = New DataSet
_dbda = New OleDbDataAdapter("SELECT * FROM T_DATA WHERE NOT DELETED", _dbcn)
_dbcb = New OleDbCommandBuilder(_dbda)
Dim dtmUsers As New DataTableMapping("Table", "T_Data")
_dbda.TableMappings.Add(dtmUsers)
_dbda.FillSchema(_dbds, SchemaType.Source, "T_Data")
_dbda.Fill(_dbds, "T_Data")
_dbcn.Close()
------------------------------------------------------------
'Gemmer ny record i dataset
Dim dr As DataRow = _dbds.Tables("T_Data").NewRow
dr("NAME") = Name
dr("POINTTYPE") = PointType
_dbds.Tables("T_Data").Rows.Add(dr)
------------------------------------------------------------
'Opdaterer record i dataset
Dim dr As DataRow = _dbds.Tables("T_Data").Find(ID)
dr("NAME") = Name
dr("POINTTYPE") = PointType
------------------------------------------------------------
'Gemmer data til database
Dim changesDS As DataSet
changesDS = _dbds.GetChanges()
If Not IsNothing(changesDS) Then
_dbcn.Open()
_dbda.Update(changesDS)
_dbds.AcceptChanges()
_dbcn.Close()
End If