Hallo Christoph, CLaudius,
habe nun folgendes fabriziert: Erstelle einen DataAdapter und DataSet, fülle
das Schema der beiden Tabellen in das DataSet, setze die neuen Datensätze aus
der Exceltabelle ein, lese den Autowert je Reihe aus und füge diesen dann in
die zweite Tabelle ein.
So weit so gut klappt auch alles prima (danke für die Tipps), nur habe ich jetzt das Problem dass mir mein COmmandBuilder die DataSets nicht in die DB zurückschreibt. Bekomme keine Fehlermeldung, nichts!
Hat hierzu vielleicht jemand noch eine Anregung?
Hier mein Code:
Dim lastID As Integer
Dim sqlInsert As String
sqlInsert = "SELECT ID FROM Empfaenger ORDER BY ID DESC"
Dim MyCommand As New OleDbCommand(sqlInsert, objConnect)
objConnect.Open()
lastID = CInt(MyCommand.ExecuteScalar()) + 1
response.write(lastID & "<br>")
'### Adapter füllen und DataSet
Dim objDataAdapter As OleDbDataAdapter
objDataAdapter = New OleDbDataAdapter("SELECT * FROM Empfaenger", objConnect)
Dim objDataSet As New DataSet()
objDataAdapter.FillSchema(objDataSet, SchemaType.Mapped, "Empfaenger")
objDataAdapter = New OleDbDataAdapter("SELECT * FROM Gruppen", objConnect)
objDataAdapter.FillSchema(objDataSet, SchemaType.Mapped, "Gruppen")
objDataSet.AcceptChanges()
'### autowert setzen auf letzteID+1!
Dim objColumn As DataColumn = objDataSet.Tables("Empfaenger").Columns("ID")
objColumn.DataType = System.Type.GetType("System.Int32")
objColumn.ReadOnly = True
objColumn.AutoIncrement = True
objColumn.AutoIncrementSeed = lastID
objColumn.AutoIncrementStep = 1
Dim EmpfIDGruppenFK As ForeignKeyConstraint = New ForeignKeyConstraint("EmpfIDGruppenFK",
objDataSet.Tables("Empfaenger").Columns("ID"),
objDataSet.Tables("Gruppen").Columns("EmpfID"))
EmpfIDGruppenFK.DeleteRule = Rule.Cascade
EmpfIDGruppenFK.AcceptRejectRule = AcceptRejectRule.Cascade
objDataSet.Tables("Gruppen").Constraints.Add(EmpfIDGruppenFK)
'###Daten aus Excel Importieren
sqlInsert = "SELECT Anrede, Firma, Vorname, Nachname, ....[Excel 8.0;]"
objDataAdapter = New OleDbDataAdapter(sqlInsert, objConnect)
objDataAdapter.Fill(objDataSet, "Empfaenger")
Dim objDataRow, objDataRow2 As DataRow
For Each objDataRow in objDataSet.Tables("Empfaenger").Rows
objDataRow2 = objDataSet.Tables("Gruppen").NewRow()
objDataRow2("EmpfID") = objDataRow("ID")
objDataRow2(Session("UploadGruppe")) = -1
objDataSet.Tables("Gruppen").Rows.Add(objDataRow2)
Next
Dim objCommandBuilder As New OleDbCommandBuilder(objDataAdapter)
objDataAdapter.InsertCommand = objCommandBuilder.GetInsertCommand()
ausgabe.Text = objDataAdapter.InsertCommand.CommandText
objDataAdapter.Update(objDataSet, "Empfaenger")
'objDataAdapter.Update(objDataSet, "Gruppen")
'### an grid binden zur ausgabekontrolle
mygrid.DataSource=objDataSet.Tables("Empfaenger").DefaultView
mygrid.DataBind()
mygrid2.DataSource=objDataSet.Tables("Gruppen").DefaultView
mygrid2.DataBind()
objConnect.Close()
Gruss
Pat
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net