Springen naar inhoud


- - - - -

Like Query Maken


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

#1 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 22 april 2016 - 15:22

hallo

ik heb een app in vs2010 met een acces database.
nu wil ik mijn datagridview filteren op de waarde die ik in een textbox zet.
ik heb volgende query.
Code:
SELECT		Ref, Vast, ES, Andere, Omschrijving, Stock_ID
FROM			Stock
WHERE		(Ref LIKE '' * ' & me.txtstock.text &  ' * '')
ORDER BY Ref


maar krijg nu error : Data type mismatch in criteria expression

#2 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 645 berichten
    Laatst bezocht 03 dec 2018 19:54
  • LocatieMechelen (BE)

Geplaatst op 22 april 2016 - 22:15

* moet % zijn

ps. ik zou ook die me.txtstock.text door een "real_escape_string" halen om je query wat te beveiligen of gebruik een query builder.

#3 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 23 april 2016 - 12:41

thx , gaan we proberen

#4 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 23 april 2016 - 21:06

nu krijg ik error

Error in WHERE clause near '%'.
Unable to parse query text.

met volgende code krijg ik geen error maar gaat de datagridview helemaal leeg zonder te filteren.
Code:
SELECT	 Ref, Vast, ES, Andere, Omschrijving, Stock_ID
FROM		 Stock
WHERE	 (Ref LIKE ' % ''me.txtstock.text'' % ')


moet het met acces niet * zijn ipv % ?

#5 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 645 berichten
    Laatst bezocht 03 dec 2018 19:54
  • LocatieMechelen (BE)

Geplaatst op 23 april 2016 - 21:32

Bericht bekijkenmustang, op 23 april 2016 - 21:06, zei:

nu krijg ik error

Error in WHERE clause near '%'.
Unable to parse query text.

met volgende code krijg ik geen error maar gaat de datagridview helemaal leeg zonder te filteren.
Code:
SELECT	 Ref, Vast, ES, Andere, Omschrijving, Stock_ID
FROM		 Stock
WHERE	 (Ref LIKE ' % ''me.txtstock.text'' % ')


moet het met acces niet * zijn ipv % ?
Even opgezocht: https://msdn.microso...office.12).aspx ja Acces is weer een moeilijke en daar gebruik je dus de *
Code:
SELECT	 Ref, Vast, ES, Andere, Omschrijving, Stock_ID
FROM		 Stock
WHERE	 (Ref LIKE "*' & me.txtstock.text &'*")
Zal zoiets zijn vermoed ik.

Bekijk ook dit om een injectie te voorkomen: http://stackoverflow...ared-statements

#6 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 24 april 2016 - 12:49

krijg geen error, maar krijg een lege datagridview ipv wat er in de textbox staat.

gebruik volgende code om de query uit te voeren.

Code:
Private Sub ButtonItem18_Click(sender As System.Object, e As System.EventArgs) Handles ButtonItem18.Click
		Me.StockTableAdapter.FillByRef(Me.CataloogDBDataSet.Stock)
	End Sub



#7 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 645 berichten
    Laatst bezocht 03 dec 2018 19:54
  • LocatieMechelen (BE)

Geplaatst op 24 april 2016 - 12:59

Dan zit er wrs ergens een fout in :)

#8 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 24 april 2016 - 13:16

ja ,, maar waar

#9 Prior

Prior

    Rookie Developer

  • Leden
  • Pip
  • 34 berichten
    Laatst bezocht 26 sep 2017 19:33

Geplaatst op 25 april 2016 - 18:05

Bericht bekijkenDamic, op 23 april 2016 - 21:32, zei:

Even opgezocht: https://msdn.microso...office.12).aspx ja Acces is weer een moeilijke en daar gebruik je dus de *
Code:
SELECT	 Ref, Vast, ES, Andere, Omschrijving, Stock_ID
FROM		 Stock
WHERE	 (Ref LIKE "*' & me.txtstock.text &'*")
Zal zoiets zijn vermoed ik.

Bekijk ook dit om een injectie te voorkomen: http://stackoverflow...ared-statements

Moet je geen plusteken (+) gebruiken ipv een concatenatie (&) ?

#10 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 25 april 2016 - 19:48

als ik text in de textbox zet en de query uitvoer krijg ik een lege textbox, geen gefilterde

#11 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 645 berichten
    Laatst bezocht 03 dec 2018 19:54
  • LocatieMechelen (BE)

Geplaatst op 26 april 2016 - 18:35

Mijn kennis stopt hier :|

#12 Prior

Prior

    Rookie Developer

  • Leden
  • Pip
  • 34 berichten
    Laatst bezocht 26 sep 2017 19:33

Geplaatst op 26 april 2016 - 19:19

En als je nu een parameterized TableAdapter query zou gebruiken? https://msdn.microso...y/ms171905.aspx

Uw code zou dan ongeveer zo moeten zijn:

Code:
Private Sub ButtonItem18_Click(sender As System.Object, e As System.EventArgs) Handles ButtonItem18.Click
		Me.StockTableAdapter.FillByRef(Me.CataloogDBDataSet.Stock, Me.txtstock.text)
	End Sub


Je sql query wordt dan volgens bovenstaande link:

Code:
SELECT	 Ref, Vast, ES, Andere, Omschrijving, Stock_ID
FROM		 Stock
WHERE Ref = ?

Het eerste kadertje 'Note' uit bovenstaande link vermeldt dat voor een bevraging van een Access database, een vraagteken moet gebruikt worden in de sql query.

#13 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 27 april 2016 - 18:20

thx , werkt perfect.
maar hoe kan ik dat combineren met een wildcard ?

#14 Prior

Prior

    Rookie Developer

  • Leden
  • Pip
  • 34 berichten
    Laatst bezocht 26 sep 2017 19:33

Geplaatst op 27 april 2016 - 18:57

Eventjes opgezocht op het Internet:
http://www.vbdotnetf...-wildcards.html

LIKE vangt een wildcard op maar = niet .

dus je moet je Where statement veranderen.

#15 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 111 berichten
    Laatst bezocht 28 apr 2016 08:18

Geplaatst op 27 april 2016 - 20:09

het is gelukt.

Code:
Private Sub ButtonItem18_Click(sender As System.Object, e As System.EventArgs) Handles ButtonItem18.Click
		Dim stocktxt As String = "%" & Me.txtstock.Text & "%"
		Me.StockTableAdapter.FillByRef(Me.CataloogDBDataSet.Stock, stocktxt)
	End Sub


bedankt voor de hulp

#16 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 645 berichten
    Laatst bezocht 03 dec 2018 19:54
  • LocatieMechelen (BE)

Geplaatst op 27 april 2016 - 20:19

Geen onnodige variabelen gebruiken ;)
Visual Basic Code:
Private Sub ButtonItem18_Click(sender As System.Object, e As System.EventArgs) Handles ButtonItem18.Click
   	 Me.StockTableAdapter.FillByRef(Me.CataloogDBDataSet.Stock, "%" & Me.txtstock.Text & "%")
	End Sub





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)