Springen naar inhoud


- - - - -

Gegevenstypen komen niet overeen met criteriumexpressie


  • Log in a.u.b. om te beantwoorden
Er zijn 6 reacties in dit onderwerp

#1 x7-virus

x7-virus

    Starting Developer

  • Leden
  • 24 berichten
    Laatst bezocht 05 aug 2012 14:07

Geplaatst op 28 januari 2011 - 15:57

Visual Basic Code:
Imports System.IO
Imports System.Data
Imports System.Data.OleDb

Partial Class LessenLesgever
	Inherits System.Web.UI.Page

	Dim cnnLesgever As New OleDbConnection("provider=microsoft.jet.oledb.4.0; data source = " & Server.mappath(".\App_Data\dbCapoeiraGeel.mdb"))

	Dim ocmdBiografie As New OleDbCommand
	Dim ocmdTrainer As New OleDbCommand


	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		'Declaratie van de variabelen
		Dim odrTrainer As OleDbDataReader

		'De commands definieren
		ocmdTrainer.Connection = cnnLesgever
		ocmdTrainer.CommandText = "SELECT Appeledo FROM tblLeden WHERE TrainerID IS NOT NULL"

		'De combobox opvullen
		cnnLesgever.Open()

		odrTrainer = ocmdTrainer.ExecuteReader

		Do While odrTrainer.Read
			cboLesgever.Items.Add(odrTrainer(0))
		Loop
		cnnLesgever.Close()
	End Sub

	Protected Sub cboLesgever_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboLesgever.SelectedIndexChanged
		'Command om label te vullen definieren
		ocmdBiografie.Connection = cnnLesgever
		ocmdBiografie.CommandText = "SELECT Biografie FROM tblTrainerBiografie WHERE TrainerID = '" & cboLesgever.SelectedIndex + 1 & "'"

		'Tekst in label zetten + label zichtbaar maken
		cnnLesgever.Open()

		lblLesgever.Text = ocmdBiografie.ExecuteScalar
		lblLesgever.Visible = True

		cnnLesgever.Close()
	End Sub
End Class

De bovenstaande fout komt voor bij de regel:
lblLesgever.Text = ocmdBiografie.ExecuteScalar

Wie weet hoe ik dit kan oplossen want het is heel belangrijk dat ik deze pagina kan afwerken. Het is namelijk voor mijn eindwerk voor school en bepaalt het grootste deel van mijn cijfer op het einde van het jaar.

#2 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3608 berichten
    Laatst bezocht 17 sep 2021 14:39
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 28 januari 2011 - 16:47

x7-virus zei:

De bovenstaande fout komt voor bij de regel:
lblLesgever.Text = ocmdBiografie.ExecuteScalar

Ik zie geen foutmelding staan, enkel code.
Misschien even zeggen wat de juiste foutmelding is...

Moet dit niet vb.net zijn ?

#3 x7-virus

x7-virus

    Starting Developer

  • Leden
  • 24 berichten
    Laatst bezocht 05 aug 2012 14:07

Geplaatst op 29 januari 2011 - 01:04

RedThread zei:

x7-virus zei:

De bovenstaande fout komt voor bij de regel:
lblLesgever.Text = ocmdBiografie.ExecuteScalar

Ik zie geen foutmelding staan, enkel code.
Misschien even zeggen wat de juiste foutmelding is...

Moet dit niet vb.net zijn ?

Dit is code van een website die ik moet maken met Visual Web Developer

En de foutmelding gebeurt als ik een item uit de combobox selecteer. Dan wordt de regel 'lblLesgever.text = ocmdBiografie.ExecuteScalar' geselecteerd en geeft hij de foutmelding 'Gegevenstypen komen niet overeen met criteriumexpressie'

#4 Complexity

Complexity

    Rookie Developer

  • Leden
  • Pip
  • 33 berichten
    Laatst bezocht 22 sep 2014 15:28
Inzender

Geplaatst op 29 januari 2011 - 01:11

Beste,

Ik vermoed dat er het volgende gebeurd.
Het veld TrainerID in de database, is geen numeriek veld, maar een ander type.

Wat je met je query probeert te doen, is een object van het type integer (SelectedIndex + 1), te vergelijken met een waarde die in je database is opgeslagen.

Je dient dus één van deze 2 types te veranderen, naar het correcte type.

Indien dit geen oplossing brengt, gelieve dan eens het type van het veld mee te geven welke je in de database hebt opgeslagen.


Met vriendelijke groeten,

Complexity

#5 x7-virus

x7-virus

    Starting Developer

  • Leden
  • 24 berichten
    Laatst bezocht 05 aug 2012 14:07

Geplaatst op 29 januari 2011 - 01:16

Complexity zei:

Beste,

Ik vermoed dat er het volgende gebeurd.
Het veld TrainerID in de database, is geen numeriek veld, maar een ander type.

Wat je met je query probeert te doen, is een object van het type integer (SelectedIndex + 1), te vergelijken met een waarde die in je database is opgeslagen.

Je dient dus één van deze 2 types te veranderen, naar het correcte type.

Indien dit geen oplossing brengt, gelieve dan eens het type van het veld mee te geven welke je in de database hebt opgeslagen.


Met vriendelijke groeten,

Complexity
In tblTrainerBiografie is het Autonummering

In tblLeden staat het gewoon als Tekst

(Ik kan op de moment niet testen want ik zit niet op een pc met VWD

#6 Complexity

Complexity

    Rookie Developer

  • Leden
  • Pip
  • 33 berichten
    Laatst bezocht 22 sep 2014 15:28
Inzender

Geplaatst op 29 januari 2011 - 01:33

Beste,

Dan raad ik je aan alvorens, je de waarde uit je dropdownlist in je query stopt, deze te casten naar een integer.

Indien het niet werk, laat gerust iets weten.


Mvg,

Complexity

#7 x7-virus

x7-virus

    Starting Developer

  • Leden
  • 24 berichten
    Laatst bezocht 05 aug 2012 14:07

Geplaatst op 31 januari 2011 - 10:07

Complexity zei:

Beste,

Dan raad ik je aan alvorens, je de waarde uit je dropdownlist in je query stopt, deze te casten naar een integer.

Indien het niet werk, laat gerust iets weten.


Mvg,

Complexity

Nu geeft het een lichtjes andere fout, ipv Gegevenstypen komen niet overeen MET criteriumexpressie zegt het nu Gegevenstypen komen niet overeen IN criteriumexpressie?

Ik heb in de SQL regel bij de waarde van mijn combobox gewoon een Integer.Parse gezet.

mvg




0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)