Solche Chefs machen es unseren Collegen nie leicht.
Sind meist Quereinsteiger die meinen Programmieren ist das aneinanderreihen von Codezeilen bis es geht.
Public Class SchnellGeschriebenerDAL
Public Property ConnectionString() As String
Public Sub New(ByVal connectionString)
Me.ConnectionString = connectionString
End Sub
Public Function Exists() As Boolean
Dim con As OleDbConnection = Nothing
Try
con = New OleDbConnection(ConnectionString)
con.Open()
Return True
Catch ex As Exception
Finally
If (con IsNot Nothing) Then
con.Close()
End If
End Try
Return False
End Function
Public Sub ChangeDBFileName(ByVal fileName As String)
Dim cb As New OleDbConnectionStringBuilder(ConnectionString)
cb.DataSource = fileName
ConnectionString = cb.ToString()
End Sub
Public Function ReadDataTable(ByVal dt As DataTable, ByVal sql As String, _
ByVal parameter As Dictionary(Of String, Object)) As DataTable
Using adap As New OleDbDataAdapter(sql, ConnectionString)
For Each kv In parameter
adap.SelectCommand.Parameters.AddWithValue(kv.Key, kv.Value)
Next
If (dt Is Nothing) Then
dt = New DataTable()
End If
adap.Fill(dt)
End Using
Return dt
End Function
Public Function ReadDataTable(ByVal tableName As String) As DataTable
Return ReadDataTable(Nothing, String.Format("SELECT * FROM {0}", _
tableName), Nothing)
End Function
Public Function WriteDataTable(ByVal dt As DataTable, ByVal tablename As _
String) As Integer
Using adap As New OleDbDataAdapter(String.Format("SELECT * FROM {0}", _
tablename), ConnectionString)
Dim cb As New OleDbCommandBuilder(adap)
Return adap.Update(dt)
End Using
End Function
End Class
Public Class KundenlistRepository
Protected dal As SchnellGeschriebenerDAL
Public Sub New(ByVal connectionstring As String)
dal = New SchnellGeschriebenerDAL(connectionstring)
End Sub
Public Function ReadAll() As DataTable
Return dal.ReadDataTable("KundenListe")
End Function
Public Function ReadByID(ByVal id As Integer) As DataTable
Dim param As New Dictionary(Of String, Object)
param.Add("@ID", id)
Return dal.ReadDataTable(Nothing, "SELECT * FROM KundenListe WHERE" & _
"ID=?", param)
End Function
Public Function Save(ByVal dt As DataTable) As Integer
Return dal.WriteDataTable(dt, "KundenListe")
End Function
End Class
Public Class KundenListForm
Inherits System.Windows.Forms.Form
Private klRepository As KundenlistRepository
Private kundenDataTable As DataTable
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
klRepository = New KundenlistRepository(My.Settings.datenbank)
End Sub
Private Sub LoadAllButton_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles LoadAllButton.Click
kundenDataTable = klRepository.ReadAll()
gridKD.DataSource = kundenDataTable
End Sub
End Class Das habe ich dir jetzt mal in 10 Min so runtergechrieben.
Das ist nicht kompiliert und kann auch den einen oder anderen Fehler beinhalten, soll nur mal zeigen wie es eher gehen sollte. |