login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Mysql VB.NET

Offline larssy1 - 08/11/2008 16:28
Avatar van larssy1MySQL beginner Hoi mensen,

ik ben bezig met mijn applicatie verbinding te laten maken met mijn datebase. Maar nu heb ik het probleem dat hij alle gebruikersweergeeft inplaats van weer te geven hoeveel gebruikers er zijn (mysql_num_rows)

Maar hoe voeg ik de toepassing mysql_num_rows in VB.Net zodat hij alleen het aantal geregistreerde gebruikers weergeeft?

Mvg
Lars

25 antwoorden

Gesponsorde links
Offline skillat2 - 08/11/2008 17:54
Avatar van skillat2 HTML beginner
  1. SELECT COUNT(*) FROM tabel
Offline larssy1 - 08/11/2008 18:01 (laatste wijziging 08/11/2008 18:09)
Avatar van larssy1 MySQL beginner die code werkt niet,

dan krijg je deze foutmelding:
You have specified an invalid column ordinal.

mijn stukje code ervan:
  1. Dim query As String = "SELECT count(*) FROM leden WHERE geactiveerd ='1'"


----------
Heb hem nu zo aangepast, dat de code klopt.. maar als ik count(*) erin zet.. dan verbreekt de verbinding...
Offline skillat2 - 08/11/2008 18:24
Avatar van skillat2 HTML beginner geactiveerd ='1' vervangen naar geactiveerd = 1 (als het een integer is)

En probeer dit eens, alleen connectie even veranderen.

  1. Dim Aantal As New OleDbCommand(query, connectie)
Offline larssy1 - 08/11/2008 19:45 (laatste wijziging 08/11/2008 20:23)
Avatar van larssy1 MySQL beginner uhm, ik gebruik de code van de tutorials
dat is dit bovenste stukje

  1. Dim sqlConn As New MySqlConnection("Database=test; Data Source=localhost; User Id='root'; Password=''")
  2. Dim query As String = "SELECT COUNT(*) FROM leden"
  3. Dim resultaat As String = ""
  4. Dim myCommando As MySqlCommand = New MySqlCommand(query, sqlConn)
  5. Dim sqlReader As MySqlDataReader


En wat doe ik fout? de code hierboven wel.. maar zodra ik hierin verander niet meer :x
  1. Dim sqlConn As New MySqlConnection("Database=copa_database; Data Source=localhost; User Id='root'; Password=''")
  2. Dim query As String = "SELECT id, login, level, info, showonline, activated FROM [users]"
Offline Abbas - 08/11/2008 21:45
Avatar van Abbas Gouden medaille

Crew .NET
Dit zou moeten werken:

  1. Dim myConn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\...\database.mdb;")
  2. Dim myCommand As New OleDb.OleDbCommand("SELECT COUNT(voornaam) FROM klanten", myConn)
  3. Dim myReader As OleDb.OleDbDataReader
  4.  
  5. Try
  6. myConn.Open()
  7. myReader = myCommand.ExecuteReader()
  8. MessageBox.Show(myReader.GetValue(0).ToString())
  9. Catch ex As Exception
  10. MessageBox.Show(ex.Message)
  11. Finally
  12. myConn.Close()
  13. End Try


Dit werkt bij mij in ieder geval.. 
Offline larssy1 - 08/11/2008 21:46
Avatar van larssy1 MySQL beginner dat is voor access database
Offline Abbas - 08/11/2008 23:12
Avatar van Abbas Gouden medaille

Crew .NET
En wat moet jij hebben? Als het MS SQL Server is moet je enkel je ConnectionString aanpassen en in plaats van OleDb gebruik je dan System.Data.SqlClient. En dan doe je SqlConnection, SqlCommand, Sql...
Offline larssy1 - 08/11/2008 23:36
Avatar van larssy1 MySQL beginner ik gebruik MySQL server van Xampp
Offline Abbas - 09/11/2008 03:24
Avatar van Abbas Gouden medaille

Crew .NET
Een beetje ZOEKEN kan nooit kwaad!
Offline larssy1 - 09/11/2008 11:38
Avatar van larssy1 MySQL beginner haha, ik heb joun tut ook gebruikt.. maar ik weet dus niet hoe je het aantal gebruikers laat weergeven.. inplaats van ALLE gegevens
Offline henver - 09/11/2008 11:41
Avatar van henver HTML gevorderde Ken zelf niets van VB.NET, maar is het niet mogelijk een variabele aan te maken met als waarde 0 en voor elk record in de database deze variabele met 1 te verhogen?

Wel redelijk omslachtig, maar zoals ik al zei: VB.NET is niet mijn sterkste kant.
Offline nemesiskoen - 09/11/2008 11:42 (laatste wijziging 09/11/2008 11:43)
Avatar van nemesiskoen Gouden medaille

PHP expert
Of gewoon een count doen en ipv een oledb command zoals in titjes z'n post maak je daar een mysql command van.

  1. string query = "SELECT count(id) FROM leden";
  2. MySqlCommand myCommando = new MySqlCommand(query, sqlConn);
Offline larssy1 - 09/11/2008 14:33
Avatar van larssy1 MySQL beginner Dat doet ie niet, hij verbreekt dan de verbinding met de database server.
Offline nemesiskoen - 09/11/2008 14:48 (laatste wijziging 09/11/2008 14:48)
Avatar van nemesiskoen Gouden medaille

PHP expert
heb je wel sqlConn.Open() gedaan?
Geef eens wat je nu hebt?
Offline larssy1 - 09/11/2008 14:57 (laatste wijziging 09/11/2008 15:01)
Avatar van larssy1 MySQL beginner
  1. Dim sqlConn As New MySqlConnection("Database=----; Data Source=localhost; User Id='----'; Password='----'")
  2. Dim query As String = "SELECT signup,attack,defence,clicks,ster,rank,clan,cash,bank,type,level FROM `[users]` WHERE `activated`=1"
  3. Dim resultaat As String = ""
  4. Dim myCommando As MySqlCommand = New MySqlCommand(query, sqlConn)
  5. Dim sqlReader As MySqlDataReader
  6.  
  7. Try
  8. sqlConn.Open()
  9. sqlReader = myCommando.ExecuteReader()
  10.  
  11. While sqlReader.Read()
  12. resultaat += sqlReader.GetValue(0).ToString() + " " + sqlReader.GetString(1) + " " + sqlReader.GetInt32(2).ToString() + Environment.NewLine()
  13. End While
  14.  
  15. lblUsers.Text = resultaat
  16. sqlReader.Close()
  17.  
  18. If sqlConn.State = ConnectionState.Open Then
  19. LblServerOF.Text = "Online"
  20. lblGameOF.Text = "Online"
  21. PictureBox1.Visible = True
  22. PictureBox2.Visible = True
  23. End If
  24. Catch x As Exception
  25. LblServerOF.Text = "Offline"
  26. lblGameOF.Text = "Offline"
  27. PictureBox3.Visible = True
  28. PictureBox4.Visible = True
  29. End Try
  30.  
  31. lblDate.Text = Date.Today.Year()
  32. End Sub


Ondersteunt trouwens vb.net niet de code meer van vb6.0 van Add.Item voor bijv de combo box?

heb al gekeken in wat tuts.. maaar daar kan ik niks vinden..
dit probeerde ik:
  1. Dim Test As Object
  2. Test = "Choose your problem.."
  3. Test = "Server offline"
  4. cmbSelect.Items.Add(Test)
Offline Abbas - 09/11/2008 19:27
Avatar van Abbas Gouden medaille

Crew .NET
Zo dan:

  1. Dim Test As Object
  2. Test = "Choose your problem.."
  3. cmbSelect.Items.Add(Test)
  4. Test = "Server offline"
  5. cmbSelect.Items.Add(Test)
Offline larssy1 - 09/11/2008 23:03
Avatar van larssy1 MySQL beginner Hoe kom jij zo slim? 

heb jij de opleiding programmeur al gehad?
Offline Abbas - 09/11/2008 23:07
Avatar van Abbas Gouden medaille

Crew .NET
Ik ben bezig met een opleiding voor programmeur ja. Ik ben nu ongeveer al 3,5 jaar met .NET bezig (zowel C# als VB.NET), daarmee dat ik er toch wel iets van weet.. 
Offline larssy1 - 10/11/2008 14:30
Avatar van larssy1 MySQL beginner weet je dan miss ook hoe ik het AANTAL gebruikers weer kan geven?

het aantal leden,
de online leden,
de verbannen leden,
en het nieuwste lid
Offline Abbas - 10/11/2008 14:40
Avatar van Abbas Gouden medaille

Crew .NET
Zoals al aangegeven, met een COUNT() in je query!!!
Offline larssy1 - 10/11/2008 15:08
Avatar van larssy1 MySQL beginner uhm ,, ja dat heb ik dus al verschillende keren geprobeerd.. maar waarom verbreekt hij dan telkens de verbinding met mijn mysql server?
Offline Abbas - 10/11/2008 16:22
Avatar van Abbas Gouden medaille

Crew .NET
Dan zal dat aan de verbinding liggen en niet aan de query!
Offline Rens - 10/11/2008 16:31
Avatar van Rens Gouden medaille

Crew algemeen
Voer de query uit in mysqladmin (zit standaard bij mysql).
Werkt het dan wel dan weet je dat de query klopt en het dus aan jouw code ligt i.p.v. aan de query.
Offline rredspike1 - 10/11/2008 23:20
Avatar van rredspike1 Lid
titjes schreef:
Dit zou moeten werken:

[..code..]

Dit werkt bij mij in ieder geval.. 


Waarom niet gewoon:
MessageBox.Show(myReader.GetValue(0).ToString())

ivp die 0 gewoon de veldnaam
Offline Abbas - 10/11/2008 23:49
Avatar van Abbas Gouden medaille

Crew .NET
Je selecteert geen kolom/veld, maar een waarde, namelijk COUNT(). Stel dat je in je SELECT-statement het id en de naam selecteert, dan kan je bij het lezen doen: GetValue(0) en dat geeft dan de waarde van het veld id, en GetValue(1) en dat geeft dan de waarde van het veld naam. Je mag de naam invullen, maar in dit geval gaat het om een COUNT()-statement en dan gebruik je gewoon GetValue(0)!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.238s