Hallo Zusammen,
ich versuche gerade von VB6 auf .Net umzusteigen.
Beim Zugriff auf eine Accessdatenbank habe ich Probleme.
Ich möchte zuerst prüfen ob ein Datensatz zu einem Schlüssel besteht.
Wenn ja möchte ich davon ein bestimmtes Feld zurückgeben
Wenn nicht einen DatenSatz Anlegen.
Irgendwie stehe ich auf dem Schlauch und bekomme bei "dr_Info = da.SelectCommand.ExecuteReader()"
eine Exception.
Hat mir da jemand einen Tipp wie man das Problem "elegant" lösen kann ?
Gruß
Roland
Public Function DB_CheckUpd(ByRef key As String) As Integer
Dim Conn As New OleDbConnection
Dim da As New OleDbDataAdapter()
Dim dr_Info As OleDbDataReader
Dim ds As New DataSet()
Conn = New OleDbConnection
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\Test.mdb"
Conn.Open()
da.SelectCommand = New OleDbCommand("SELECT Field1, Field2 FROM Tbl_Dok " & _
" WHERE Field1 = '" & Key & "' ")
da.SelectCommand.Connection = Conn
dr_Info = da.SelectCommand.ExecuteReader()
With dr_Info
If .Read() = True Then
MessageBox.Show("Datensatz gefunden")
DB_CheckUpd = dr_Info.Item("Field3").ToString
Else
MessageBox.Show("Keinen Datensatz gefunden")
da.InsertCommand = New OleDbCommand("INSERT INTO " & DBTabelle & _
" (DokTyp, Num, TeilDok, DokVer, MatNum, datum)" & _
" VALUES(@DokTyp, @Num, @TeilDok, @DokVer, @MatNum, @datum)")
da.InsertCommand.Connection = Conn
da.InsertCommand.Parameters.Add("@Field1", OleDbType.VarChar, 25, Key)
da.InsertCommand.Parameters.Add("@Field3", OleDbType.VarChar, 20, Format(DateAndTime.Now, "yyyyMMdd"))
End If
End With
dr_Info.Close()
Conn.Close()
End Function
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP