Hallo, ich bin php-Umsteiger und beschäftige mich jetzt mit VB.net. Habe mir schon verschiedenste Tutorials, Videos und ähnliches reingezogen, aber es sind doch ein paar fragen übrig geblieben.
1. Ich habe ein Array
auf das ich in mehreren Form zugreifen möchte. Unter php konnte man in ein Skript sein Zeugs reinschreiben und es dann per include in einem anderem Skript aufrufen. Wie löse ich das am Besten in VB? Es handelt sich um 40 Arrays, die an verschiedenen Stellen aufgerufen werden sollen.
2. Ich habe mich entschlossen MySQL zu verwenden, weil ich das von php her schon kenne. Dazu habe ich mir das Tutorial http://www.vbmysql.com/articles/vbnet-mysql-tutorials/the-vbnet-mysql-tutorial-part-1 - Teil 5 angeschaut. Funktioniert auch soweit ganz gut, aber im Kapitel 4 versteh ich das mit der Property nicht. Ich habs alles rüberkopiert und angepasst, aber ich bin de rMeinung, das das auch besser gehen muss.
Code des Loginformulars
Im Anwendungsformular dann:
Geht das mit dem übergeben und speichern des Connection-Strings nicht besser und übersichtlicher? Soweit ich das Galileobuch verstanden habe kann ich doch Programmweite Variablen definieren und die dann in allen Forms aufrufen, oder? Warum ging das bei mir nicht mit dem Connectionstring?
MfG Simauki
1. Ich habe ein Array
Code:
Dim test() As Integer = {1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 22, 23}
2. Ich habe mich entschlossen MySQL zu verwenden, weil ich das von php her schon kenne. Dazu habe ich mir das Tutorial http://www.vbmysql.com/articles/vbnet-mysql-tutorials/the-vbnet-mysql-tutorial-part-1 - Teil 5 angeschaut. Funktioniert auch soweit ganz gut, aber im Kapitel 4 versteh ich das mit der Property nicht. Ich habs alles rüberkopiert und angepasst, aber ich bin de rMeinung, das das auch besser gehen muss.
Code des Loginformulars
Code:
Imports MySql.Data.MySqlClient
Public Class LoginForm1
Private Sub login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdlogin.Click
Dim user As String
user = txtboxusername.Text
Dim myConnString As String
myConnString = "server=" & txtboxserver.Text & ";" & "user id=" & user & ";" & "password=" & txtboxpassword.Text & ";" & "database=planspiel"
Dim conn As MySqlConnection
conn = New MySqlConnection()
conn.ConnectionString = myConnString
Try
conn.Open()
conn.Close()
If chkboxmerken.Checked Then
My.Settings.User = txtboxusername.Text
My.Settings.Save()
Else
My.Settings.User = ""
End If
Form1.Text = "Baumogul für MySQL - angemeldet als " & user
Form1.EinloggenToolStripMenuItem.Visible = False
Form1.NeuesSpielToolStripMenuItem.Visible = True
Form1.SpielLadenToolStripMenuItem.Visible = True
Form1.AbmeldenToolStripMenuItem.Visible = True
Me.Close()
MsgBox("Sie haben sich erfolgreich am System angemeldet.", MsgBoxStyle.Information, "Info")
Form2.connectionString = myConnString
Form7.connectionString = myConnString
Form6.connectionString = myConnString
Catch myerror As MySqlException
MsgBox("Sie konnten leider nicht angemeldet werden." & vbCrLf & myerror.Message, MsgBoxStyle.Information, "Info")
txtboxusername.Clear()
txtboxpassword.Clear()
txtboxusername.Select()
End Try
End Sub
End Class
Im Anwendungsformular dann:
Code:
Imports MySql.Data.MySqlClient
Imports System.Data
Public Class Form7
Private myConnString As String
Public WriteOnly Property connectionString() As String
Set(ByVal value As String)
myConnString = value
End Set
End Property
Dim durch As Integer
Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim text As String
text = "&laden"
cmderstellen.Text = "Spiel " & text
Dim conn As New MySqlConnection
Dim myCommand As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim myData As New DataTable
Dim SQL As String
SQL = "SELECT id, beschreibung from savegames"
conn.ConnectionString = myConnString
Try
conn.Open()
Try
myCommand.Connection = conn
myCommand.CommandText = SQL
myAdapter.SelectCommand = myCommand
myAdapter.Fill(myData)
comboboxbeschreibung.DataSource = myData
comboboxbeschreibung.DisplayMember = "beschreibung"
comboboxbeschreibung.ValueMember = "id"
Catch myerror As MySqlException
MsgBox("There was an error reading from the database: " & myerror.Message)
End Try
Catch myerror As MySqlException
MessageBox.Show("Error connecting to the database: " & myerror.Message)
Finally
If conn.State <> ConnectionState.Closed Then conn.Close()
End Try
End Sub
End Class
Geht das mit dem übergeben und speichern des Connection-Strings nicht besser und übersichtlicher? Soweit ich das Galileobuch verstanden habe kann ich doch Programmweite Variablen definieren und die dann in allen Forms aufrufen, oder? Warum ging das bei mir nicht mit dem Connectionstring?
MfG Simauki