Du musst natürlich den gleichen DataSet (bzw DataTable) benutzen. Wenn du einen neuen anlegst wirst du da drin keine Daten finden. Du kannst objDataset global anlegen, oder zB über
CType(DataGridView1.DataSource, DataView).Table.DataSet erreichen. Lieber global machen...
Imports System.Data.OleDb
Imports System.Data
Public Class Form1
Private objDataSet As DataSet
Private objAdapter As OleDbDataAdapter
Private objConnection As OleDbConnection
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
Handles MyBase.Load
Dim XLS_Datei As String = "F:\Test\test.xls"
Try
objConnection = New OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & XLS_Datei & _
"'; " & "Extended Properties=Excel 8.0;")
objAdapter = New OleDbDataAdapter("select * from [Tabelle1$]", _
objConnection)
objDataSet = New DataSet
objAdapter.Fill(objDataSet)
Dim objTabelle As DataTable = objDataSet.Tables(0)
DataGridView1.DataSource = objTabelle.DefaultView
DataGridView1.AutoResizeColumns()
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
Try
If objAdapter.UpdateCommand Is Nothing Then
Dim objCommand As New OleDb.OleDbCommand("UPDATE [Tabelle1$] " & _
"SET Col1 = ?, Col2 = ?, Col3 = ? WHERE Id = ?", _
objConnection)
objCommand.Parameters.Add("col1", OleDbType.Char, _
255).SourceColumn = "Col1"
objCommand.Parameters.Add("col2", OleDbType.Char, _
255).SourceColumn = "Col2"
objCommand.Parameters.Add("col3", OleDbType.Char, _
255).SourceColumn = "Col3"
objCommand.Parameters.Add("id", OleDbType.Char, _
255).SourceColumn = "Id"
objAdapter.UpdateCommand = objCommand
End If
objAdapter.Update(objDataSet)
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Sub
End Class________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist |