vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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: DataGrid-Inhalt im Netzwerk teilen 
Autor: ModeratorFZelle (Moderator)
Datum: 26.04.11 14:18

BuchEy schrieb:
Zitat:

Gebunden ist das ganze an meine MySQL-Datenbank ohne DataSet
o.ä., weil ich da nicht durchgestiegen bin.

Wie schon mal geschrieben, erst verstehen, dann implementieren.

1. NIEMALS globale Connections benutzen.
2. Du frickels ja doch die Daten in die Controls.
3. Was soll das mit dem Pooling? Du hast wirklich verstanden was das im Connectionstring macht?
4. Du kannst nicht an MySql binden, nur an Auflistungen, in deinem Fall an eine DataTable.
5. NIEMALS,NIEMALS,NIEMALS,NIEMALS auf Internas anderer Klassen zugreifen und schon gar nicht über die Defaultinstanzen.

Als erstes solltest du mal Functionen ( Businesslogik ) von der Oberfläche trennen.
public Class DataAccess
	Protected _Connectionstring  As String
	public sub New(ByVal connectionstring as String)
		_Connectionstring = connectionstring
	End Sub
 
	Public Function GetDatabases() as DataTable
		Return ReadDataTable( "SHOW DATABASES" )
	End Function
 
	Public Function GetTables( databaseName as string) as DataTable
		ChangeDatabase( databaseName )
		Return ReadDataTable( "SHOW TABLES" )
	End Function
 
	Public Function ReadTable(tableName as string) as DataTable
		Return ReadDataTable( string.Format("SELECT * FROM {0}", tableName) )
	End Function
 
	Public Function WriteTable(tableName as string, dt as DataTable)
		Using adapter as new MySqlDataAdapter(string.Format("SELECT * FROM {0}", _
  tableName), _Connectionstring)
			Dim cb as new MySqlCommandBuilder(adapter)
			adapter.Update(dt)
		End Using
	End Function
 
	Public Sub ChangeDatabase(newDatabase as string)
		dim csb as new MySqlConnectionstringBuilder(_Connectionstring)
		csb.Database = newDatabase
		_Connectionstring = csb.ToString()
	End Sub
 
	public Function ReadDataTable(sql as string ) as DataTable
		Dim dt as new DataTable
		Using adapter as new MySqlDataAdapter(sql, _Connectionstring)
			adapter.Fill( dt )
		End Using
		Return dt
	End Function
end Class
So und jetzt ist das was in der UI steht auch einfacher zu ersehen.
Public Class OptionenForm
	Inherits System.Windows.Forms.Form
 
	Protected DAL as DataAccess
 
	public sub new()
		InitialiseComponents()
		Dim Connectionstring as string = String.Format("server={0};user id={1};" & _
  "password={2}; database=mysql", tb_server.Text, tb_user.Text, tb_passwd.Text)
		DAL = new DataAccess(Connectionstring)
	End Sub
	Private Sub cmd_connect_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles cmd_connect.Click
 
		Try
            Dim dt as DataTable = DAL.GetDatabases()
            cb_database.DisplayMember = dt.columns(0).ColumnName
			cb_database.DataSource = dt			
        Catch ex As MySqlException
            MessageBox.Show("Error connecting to the server: " + ex.Message)
        End Try
	End Sub
 
	Private Sub cb_database_SelectedIndexChanged(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles cb_database.SelectedIndexChanged
 
        Try
            Dim dt as DataTable = DAL.GetTables(cb_database.Text)
            cb_tables.DisplayMember = dt.columns(0).ColumnName
			cb_tables.DataSource = dt			
 
        Catch ex As SqlException
            MessageBox.Show("Failed to populate table list: " + ex.Message)
        Finally
            If Not reader Is Nothing Then reader.Close()
        End Try
    End Sub
 
 
	Private Sub cb_tables_SelectedIndexChanged(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles cb_tables.SelectedIndexChanged
		DasDataGridView.DataSource = DAL.ReadTable(cb_tables.Text)
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataGrid-Inhalt im Netzwerk teilen2.283BuchEy19.04.11 21:50
Re: DataGrid-Inhalt im Netzwerk teilen1.232Manfred X19.04.11 21:57
Re: DataGrid-Inhalt im Netzwerk teilen1.111BuchEy19.04.11 23:30
Re: DataGrid-Inhalt im Netzwerk teilen1.110BuchEy20.04.11 10:40
Re: DataGrid-Inhalt im Netzwerk teilen1.132ModeratorFZelle20.04.11 11:57
Re: DataGrid-Inhalt im Netzwerk teilen1.141BuchEy20.04.11 16:41
Re: DataGrid-Inhalt im Netzwerk teilen1.127ModeratorFZelle20.04.11 18:22
Re: DataGrid-Inhalt im Netzwerk teilen1.185BuchEy21.04.11 10:52
Re: DataGrid-Inhalt im Netzwerk teilen1.149BuchEy21.04.11 11:31
Re: DataGrid-Inhalt im Netzwerk teilen1.138ModeratorFZelle26.04.11 14:18
Re: DataGrid-Inhalt im Netzwerk teilen1.101BuchEy28.04.11 12:12

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