Textbox waarde in al bestaande string plaatsen

Status
Niet open voor verdere reacties.

Stinuz

Terugkerende gebruiker
Lid geworden
14 jun 2003
Berichten
1.245
Alloha,

ik probeer al 'n tijdje m'n textbox waardes in VB string te krijgen maar ik kom d'r niet uit.

Er wordt verbinding gemaakt met MYSQL database;
Code:
    Private connStr As String = "Database=dbname;" & _
                        "Data Source=127.0.0.1;" & _
                        "User Id=username;Password=pass;" & _
                        "Connection Timeout=20"

Maar nu wil ik dus graag in plaats van direct alles in te geven, de textbox waardes gebruiken. "DbName.Text" -> "ServerName.Text" etc. en dat als ik deze waardes verander in het formulier en op ok druk, de connectie dus veranderd.

:thumb:
 
Probeer iets met de replace functie van de string.

Bijvoorbeeld: connStr = connStr.Replace("dbname", TextBox1.Text)

Alhoewel ik kan aanraden om eerst de textboxen in een string te zetten, en die stringen te valideren (tegen SQL injecties etc).
Daarna ''dbname'' replacen met de string :)!
 
Laatst bewerkt:
Hey, bedankt voor je antwoord.

connStr = connStr.Replace("dbname", DbName.Text)
Deed het prima. Maar je zegt dus dat het beter is eerst in een string te zetten en dat te valideren, maar hoe doe ik dat dan? Gewoon zo?

Dim DbName.Text as String

Ik denk dat ik niet begrijp wat je met valideren bedoelt :o

Ik blijf trouwens weer steken op iets dat simpel hoort te zijn (typisch :P )
Als ik in het textvak de DbName verander en weer op de Ok knop druk, veranderd er niets. Ik moet dus op de een of andere manier de DataGrid weer resetten ofzo, maar ik krijg 't niet voor elkaar.

Dit is de code om de MySQL data in de datagrid te zetten;
Code:
    Public Sub retriveDataToDataGrid()
        Try
            Dim query As String = "SELECT * FROM changerrr LIMIT 10"
            Dim connection As New MySqlConnection(connStr)
            Dim da As New MySqlDataAdapter(query, connection)
            Dim ds As New DataSet()

            If da.Fill(ds) Then
                DataGridView1.DataSource = ds.Tables(0)
            End If

            connection.Close()

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Sub

Dat werkt dus perfect, en wel met deze knop code;
Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        DataGridView1.DataSource = Nothing
        Me.DataGridView1.Refresh()

        connStr = connStr.Replace("dbname", DbName.Text)
        retriveDataToDataGrid()
    End Sub

Maargoed bij het 2e keer op de knop drukken na het invullen van nieuwe database name gebeurt er dus niets nieuws.
Code:
        DataGridView1.DataSource = Nothing
        Me.DataGridView1.Refresh()
Doet dus niet wat ik wil. Ideetje? :D
 
Probeer connStr weer te resetten, zoals hier:

Code:
connStr = "Database=dbname;" & _
                        "Data Source=127.0.0.1;" & _
                        "User Id=username;Password=pass;" & _
                        "Connection Timeout=20"

Die code zet je dus op de button, wat hij als eerste gaat doen. Daarna word dbname weer veranderd door je replace functie.
Wat je ook kan doen is de huidige database naam opslaan in een string, en zorgen dat je die replaced in je connStr elke keer dat er weer een nieuwe naam inkomt.
 
Hah, en dat doet 't nog gewoon ook :P

Dank u :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan