vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Re: Problem beim Absetzen von DMLs an Access 
Autor: Sham
Datum: 23.07.05 08:52

Hey Dave,

erstmal Danke, dass du dich noch so spät um mein Problem gekümmert hast.

Benutze eigentlich keinen DataReader.
Das ganze passiert auch wenn das INSERT das erste Statement/Anfrage was auch immer an die Datenbank ist, nach dem die Verbindung geöffnet wurde.

Poste jetzt erstmal meine DB-Klasse:
Option Explicit On 
Option Strict On
 
Imports System.Data 
Imports System.Data.OleDb
 
Public Class OS_DBIdentities
    Private m_conn As OleDbConnection
    Private m_Transaction As OleDbTransaction
 
    Public Sub New()
        Me.OpenConnection()
    End Sub
 
    Public Property Connection() As OleDbConnection
        Get
            Return m_conn
        End Get
        Set(ByVal Value As OleDbConnection)
            m_conn = Value
        End Set
    End Property
 
    ' Verbindung öffnen
    Public Sub OpenConnection()
        Dim connstr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source" & _
          "= KickTip.mdb;"
        m_conn = New OleDbConnection(connstr)
        m_conn.Open()
    End Sub
 
    ' Verbindung schließen
    Public Sub Disconnect()
        m_conn.Close()
    End Sub
 
    Private Sub StartTransaction()
        Me.m_Transaction = m_conn.BeginTransaction()
    End Sub
 
    Public Sub CommitTransaction()
        Me.m_Transaction.Commit()
        Me.StartTransaction()
    End Sub
 
    Public Sub RollbackTransaction()
        Me.m_Transaction.Rollback()
        Me.StartTransaction()
    End Sub
 
    ' Daten aus DB auslesen
    Public Function GetTable(ByVal statement As String) As DataTable
        Dim cmd As New OleDbCommand(statement, m_conn)
        Dim infoAdapter As New OleDb.OleDbDataAdapter(cmd)
        Dim infoTable As New DataTable()
 
        infoAdapter.Fill(infoTable)
        Return infoTable
    End Function
 
    ' DMLs übermitteln
    Public Sub SaveChanges(ByVal statement As String, ByVal ParamArray _
      parameters() As Object)
        Dim cmd As New OleDbCommand(statement, m_conn)
 
        ' Offene Transaktion?
        If Me.m_Transaction Is Nothing Then Me.StartTransaction()
        ' Transaktion zuweisen
        cmd.Transaction = Me.m_Transaction
        ' Parameter anhängen
        AddParameters(cmd)
        cmd.ExecuteNonQuery()
    End Sub
 
    Private Sub AddParameters(ByRef cmd As OleDbCommand, ByVal ParamArray _
      parameters() As Object)
        Dim d As Decimal
        Dim i As Integer
        Dim s As String
 
        ' vorhandene Parameter entfernen
        cmd.Parameters.Clear()
 
        ' Alle Parameter zuordnen abhängig vom Datentyp
        For i = 0 To UBound(parameters)
            If parameters(i).GetType Is i.GetType Then
                cmd.Parameters.Add("Param" & i.ToString, _
                  Data.OleDb.OleDbType.Integer).Value = CInt(parameters(i))
            ElseIf parameters(i).GetType Is d.GetType Then
                cmd.Parameters.Add("Param" & i.ToString, _
                  Data.OleDb.OleDbType.Integer).Value = parameters(i)
            ElseIf parameters(i).GetType Is s.GetType Then
                cmd.Parameters.Add("Param" & i.ToString, _
                  Data.OleDb.OleDbType.Integer).Value = parameters(i).ToString
            Else
                Throw New System.InvalidCastException("Kann Datentyp von" & _
                  "Paramter " & i.ToString & " nicht zuordnen.")
            End If
        Next
    End Sub
 
End Class
Und jetzt einen Beispiel Aufruf:
		Private Sub BtnAddClick(sender As System.Object, e As System.EventArgs)
			Dim statement As String
 
            statement = "INSERT INTO OS_Mitglieder (Name, Vorname, " & _
                            "Straße, Hausnummer, PLZ, Ort, Telefon, " & _
                            "E-Mail) " & _
                        "VALUES (?,?,?,?,?,?,?,?)"
 
            myDBIdentities.SaveChanges(statement, txtName.Text, _
              txtFirstName.Text,
                                                                   txtStreet.Te_
                                                                   xt, _
                                                                   txtHNr.Text, _
                                                                   txtPLZ.Text, _
                                                                   txtTown.Text,
                                                                   txtPhone.Tex_
                                                                   t, _
                                                                   txtMail.Text)
		End Sub
Danke schon mal für die Mühen.

Gruß Sham
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem beim Absetzen von DMLs an Access783Sham22.07.05 21:37
Re: Problem beim Absetzen von DMLs an Access460ModeratorDaveS22.07.05 22:09
Re: Problem beim Absetzen von DMLs an Access479Sham23.07.05 08:52
Re: Problem beim Absetzen von DMLs an Access446ModeratorDaveS23.07.05 10:04
Re: Problem beim Absetzen von DMLs an Access440Sham23.07.05 10:26
Re: Problem beim Absetzen von DMLs an Access528ModeratorDaveS23.07.05 14:11

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel