Avatar billede danger1 Nybegynder
20. april 2006 - 14:28 Der er 10 kommentarer og
1 løsning

MySQL hvordan gør man?

Jeg skal til at lave et program, der skal kunne skrive og hente data fra en MySQL-database. programmet skal helst kunne virke på alle computer uden der skal installeres nogle andre programmer.

Problemmet er bare jeg ved ikke hvordan man connecter til MySQL i VB.NET, håber nogle kan hjælpe :P
Avatar billede csvendsen Nybegynder
20. april 2006 - 15:09 #1
Jeg har hurtigt lige udtrukket dette, som måske kan hjælpe dig i gang
(er fra en WebApplikation i VB):

Imports ByteFX.Data
Imports ByteFX.Data.MySqlClient

Namespace TL2010
Public Module Module1
  '-- create a connection string
  Dim cConnString As String
  Dim oConn As New MySqlClient.MySqlConnection()
  Dim oCmd As New MySqlClient.MySqlCommand()
  Public Const Cn_G = "Database=dbNavn; Data Source=localhost; User Id=Brugernavn; Password=Adgangskode"

  Public Sub MySqlGemTæller(ByVal sSidenavn As String, ByVal lBesøgende As Integer)
    cConnString = Cn_G    '-- create a connection object and specify the conn string
    oConn.ConnectionString = cConnString
    oConn.Open()

    '-- create a command object
    Dim oCmd As New MySqlClient.MySqlCommand()
    oCmd.CommandType = CommandType.Text

osv.....
Avatar billede arne_v Ekspert
20. april 2006 - 16:10 #2
hente data eksempel fragment:

        Dim con As MySqlConnection = New MySqlConnection ("Database=Test;Data So
urce=localhost;User Id=;Password=")
        con.Open
        Dim sel As MySqlCommand = New MySqlCommand ("SELECT * FROM T1", con)
        Dim rdr As MySqlDataReader = sel.ExecuteReader
        While rdr.Read
            Dim f1 As Integer = rdr(0)
            Dim f2 As String = rdr(1)
            ' brug f1 og f2
        End While
        rdr.Close
        con.Close

du skal hente MySQL Connector for .NET

der skal ikke installeres noget paa andre computere MySql.Data.dll skal bare
kopieres sammen med din EXE
Avatar billede arne_v Ekspert
20. april 2006 - 16:15 #3
MySQL Connector for .NET er den tidligere ByteFX - koden er den samme
men namespace er aendret fra ByteFX.Data.MySqlClient til MySql.Data.MySqlClient
Avatar billede danger1 Nybegynder
21. april 2006 - 13:38 #4
Jeg kan altså ikke finde ud af at bruge den.

hvad gør f1 og f2? og hvordan bruger jeg dem?
Avatar billede arne_v Ekspert
21. april 2006 - 14:28 #5
f1 og f2 er bare 2 felter fra database tabellen

og du kan bruge de 2 variable som du vil
Avatar billede csvendsen Nybegynder
21. april 2006 - 15:01 #6
Hej Arne, jeg ved godt at nu begynder jeg at stille et spørgsmål inden i det eksisterende, men det har dog noget med ovenstående at gøre:
Jeg har forsøgt at anvende MySQL i stedet for ByteFX, men den returnerer ikke med nogen poster i nedenstående kode. Switcher jeg tilbage til ByteFX så kommmer det korrekte resultat på 153. Kan man ikke anvende den samme kode, eller er der lidt forskel i syntaksen.
Har også konverteret web-applikationen fra vs.net 2002 til 2005, og fået den til at køre under .net v2.0, men den samme fejl optræder også her når MySQL anvendes.

Her er koden som blot henter et felt fra Mysql db:

Private Function MySQLHentTæller(ByVal sSidenavn As String) As Integer
      '-- create a connection string
      Dim cConnString As String
      MySQLHentTæller = 0
      Try
        cConnString = Cn_G    '-- create a connection object and specify the conn string
        Dim oConn As New MySqlClient.MySqlConnection()
        oConn.ConnectionString = cConnString
        oConn.Open()

        '-- create a command object
        Dim oCmd As New MySqlClient.MySqlCommand()
        oCmd.CommandType = Data.CommandType.Text
        oCmd.CommandText = "Select Besøgende from Sidetæller "
        oCmd.CommandText += "where Sidenavn = @Sidenavn"
        '-- specify the parameter values
        oCmd.Parameters.Add("@Sidenavn", MySqlClient.MySqlDbType.VarChar, 45).Value = sSidenavn

        oCmd.Connection = oConn
        Dim myReader As MySqlDataReader
        myReader = oCmd.ExecuteReader()
        ' Always call Read before accessing data.
        While myReader.Read()
          MySQLHentTæller = (myReader.GetInt32(0))
        End While
        ' always call Close when done reading.
        myReader.Close()
        oConn.Close()
      Catch ex As Exception
          'Her kommer den aldrig ved debug på lokal PC uanset om det er ByteFX eller MySQL
        debug.print ex.exception
      End Try
      MySQLHentTæller = MySQLHentTæller + 1
    End Function
Avatar billede danger1 Nybegynder
21. april 2006 - 17:27 #7
ah.. nu virker det.. vil du lige smide et svar arne :P
Avatar billede arne_v Ekspert
22. april 2006 - 04:39 #8
csvendsen>

prøv og erstat @Sidenavn med ?Sidenavn
Avatar billede arne_v Ekspert
22. april 2006 - 04:40 #9
danger1>

svar

(csvendsens kode er dog også fin)
Avatar billede csvendsen Nybegynder
25. april 2006 - 10:51 #10
Arne> erstat @ med ?
Det var lige det som skulle til, nu virker koden også i MySQL. Tak for hjælpen.
Avatar billede arne_v Ekspert
25. april 2006 - 12:58 #11
@ virkede i ByteFX men de lavede det om til ? i en af 1.0x versionerne
efter den gik over til MySQL

ikke specielt pænt gjordt at ændre sådan noget
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
Kurser inden for grundlæggende programmering

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