Avatar billede page Nybegynder
12. april 2008 - 19:07 Der er 15 kommentarer og
1 løsning

Indsæt data i mysql db med vb.net

Hey,

Jeg forsøger at smide data ind i en MySQL database ved hjælp af en textbox. Når jeg klikker på min submit knap, skal den kører funktionen: SubmitBtn_Click. Den ser således ud:

Sub SubmitBtn_Click(Sender As Object, E As EventArgs)
   
    Dim conn As New MySql.Data.MySqlClient.MySqlConnection    
    Dim myConnectionString as String                        
   
    myConnectionString = "server=db.xxxx.dk;" _
                            & "uid=xxx;" _
                            & "pwd=xx;" _
                            & "database=xxx;"       
   
    Try
    conn.ConnectionString = myConnectionString
    conn.Open()
   
    conn.CommandText = "Insert Into Test (" _
        & "test1, test2 ) values (" _
        & "'" & Replace(txtLastName.Text, "'", "''") _
        & "', " _
        & "'" & Replace(txtFirstName.Text, "'", "''") _
        & "')"
   
    conn.Close()
    Catch ex As MySql.Data.MySqlClient.MySqlException   
    End Try
End Sub


Men jeg får en fejl, på linie 20(conn.CommandText), når jeg forsøger at kører siden:

Line 18:     conn.Open()
Line 19:    
Line 20:    conn.CommandText = "Insert Into Test (" _
Line 21:        & "test1, test2 ) values (" _
Line 22:        & "'" & Replace(txtLastName.Text, "'", "''") _


Er der nogen der kan gennemskue, hvor jeg laver fejlen og hvordan jer retter den?

Mvh
Page
Avatar billede arne_v Ekspert
12. april 2008 - 19:53 #1
Hvilken fejl ?
Avatar billede arne_v Ekspert
12. april 2008 - 19:54 #2
Den command ville iøvrigt blive noget pænere med brug af parameters.
Avatar billede page Nybegynder
12. april 2008 - 22:56 #3
Hmm det den skriver af fejl er:

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30456: 'CommandText' is not a member of 'MySql.Data.MySqlClient.MySqlConnection'.
Avatar billede arne_v Ekspert
13. april 2008 - 02:21 #4
Ah.

CommandText er en property på MySqlCommand ikke MySqlConnection.
Avatar billede arne_v Ekspert
13. april 2008 - 02:22 #5
Dim com As New MySql.Data.MySqlClient.MySqlCommand
com.Connection = conn
com.CommandText = "INSERT ..."
Avatar billede page Nybegynder
13. april 2008 - 10:20 #6
God morgen,

Smider jeg de tre linier ind, kører den uden fejl meddelelser. Men den smider det ikke ind i databasen.
Avatar billede arne_v Ekspert
13. april 2008 - 17:03 #7
faar du kaldt:

com.ExecuteNonQuery()

?
Avatar billede page Nybegynder
13. april 2008 - 22:32 #8
Nej...

Går ud fra at den skal ligge som noget af det sidste?
Jeg fjernede den på et tidspunkt, kan ikke helt huske hvorfor jeg syntes det var en god ide :(
Avatar billede arne_v Ekspert
13. april 2008 - 22:38 #9
Ja.

Det er den som faktisk udfører SQL sætningen.
Avatar billede page Nybegynder
14. april 2008 - 18:44 #10
Hmm jeg smider den ind som det sidste, lige før jeg går ud af min try section. Den giver ikke  nogen fejl, men stadig ikke noget resultat.

Hvis det kan hjælpe så er min kode stump her:

Sub SubmitBtn_Click(Sender As Object, E As EventArgs)
   
    Dim conn As New MySql.Data.MySqlClient.MySqlConnection    
    Dim com As New MySql.Data.MySqlClient.MySqlCommand
   
    Dim myConnectionString as String

    myConnectionString = "server=db.xxx.dk;" _
                            & "uid=xxx;" _
                            & "pwd=xxx;" _
                            & "database=xxx;"       
   
    Try
    conn.ConnectionString = myConnectionString
   
    com.Connection = conn
    com.CommandText = "Insert Into Test (" _
        & "test1, test2 ) values (" _
        & "'" & Replace(txtLastName.Text, "'", "''") _
        & "', " _
        & "'" & Replace(txtFirstName.Text, "'", "''") _
        & "')"
       
   
    Catch ex As MySql.Data.MySqlClient.MySqlException
    com.ExecuteNonQuery()   
    End Try
End Sub
Avatar billede arne_v Ekspert
15. april 2008 - 02:29 #11
Catch ex As MySql.Data.MySqlClient.MySqlException
    com.ExecuteNonQuery() 

->

    com.ExecuteNonQuery() 
    Catch ex As MySql.Data.MySqlClient.MySqlException
Avatar billede page Nybegynder
15. april 2008 - 16:17 #12
Det gir en fejl på linie 30:

Connection must be valid and open
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Connection must be valid and open

Source Error:

Line 28:        
Line 29:    
Line 30:     com.ExecuteNonQuery() 
Line 31:        Catch ex As MySql.Data.MySqlClient.MySqlException   
Line 32:    End Try
Avatar billede arne_v Ekspert
15. april 2008 - 16:32 #13
conn.Open()
  com.ExecuteNonQuery()
Catch ex As MySql.Data.MySqlClient.MySqlException
Avatar billede page Nybegynder
15. april 2008 - 17:11 #14
Det virker endelig.

Jeg troede at min 'com.Connection = conn' før min SQL insert sætning, var nok.

Mange tak arne_v for din tålmodighed.

Lav venligst et svar.

Mvh
Avatar billede arne_v Ekspert
15. april 2008 - 17:14 #15
com.Connection = conn

fortaeller kommandoen at den skal bruge connetcion

conn.Open()

forbinder connetcion til databasen
Avatar billede page Nybegynder
15. april 2008 - 17:23 #16
Ok, tak for forklaringen og resten :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester