Springen naar inhoud


- - - - -
VS 2015

Zoeken In Sql Database

VS2015

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

#1 Rock

Rock

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht vandaag, 12:23
  • LocatieVlaanderen

Geplaatst op 11 januari 2021 - 17:00

Hallo,


ik ben met vallen en opstaan bezig om een inventaris programmatje te maken.  ik heb een vrij omvangrijke database met allerlei items van verschillende leveranciers en verschillende merken.  Nu wil ik in een datagridview de items zijn van 1 leverancier of van 1 merk, ik heb het volgende geschreven :

Dim invoer As String
invoer = UCase(InputBox("Geef de leverancier in van wie je alle data wil zien."))

data_adapter = New SqlClient.SqlDataAdapter("Select * From tbl_Invent where Leverancier='invoer''", con)

dit werkt niet, als ik ipv invoer de naam van de leverancier in de select-opdracht typ bvb ERIKSON dan werkt het wel


data_adapter = New SqlClient.SqlDataAdapter("Select * From tbl_Invent where Leverancier='ERIKSON''", con)  

dit werkt dus wel

wat doe ik verkeerd ?

#2 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 789 berichten
    Laatst bezocht vandaag, 12:52
  • LocatieMechelen (BE)

Geplaatst op 11 januari 2021 - 21:44

om je dat nu op het woord invoer zoekt en niet op de de tekst dat in invoer zit ;)

data_adapter = New SqlClient.SqlDataAdapter("Select * From tbl_Invent where Leverancier='" & invoer& "'", con)

Maar dit is geen goed idee om het zo te doen want sql injectie is dan heel gemakkelijk.

#3 Rock

Rock

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht vandaag, 12:23
  • LocatieVlaanderen

Geplaatst op 12 januari 2021 - 10:06

Bedankt, dit werkt inderdaad.   Je zult wel gemerkt hebben dat ik een leek ben in het programmeren dus nu mijn bijkomende vraag : wat is een betere methode voor dergelijke zoekopdracht en wat is sql injectie en wat is het risico van sql injectie ?

#4 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 789 berichten
    Laatst bezocht vandaag, 12:52
  • LocatieMechelen (BE)

Geplaatst op vandaag, 11:24

https://nl.wikipedia...ki/SQL-injectie

Het gebruik van Parameters

Voorbeeld genomen van hier https://stackoverflo...ofing-textboxes
Visual Basic Code:
Dim con As New SqlConnection() 
Dim cmd As New SqlCommand()

Try
	con.ConnectionString = "Data Source=" & Server & ";Initial Catalog=" & Database & ";User ID=" & User & ";Password=" & Password & ";"
	con.Open()
	cmd.Connection = con
	cmd.CommandText = "INSERT INTO TB_User(STRUserID, password, Email) VALUES(@username, @password, @email)"
	cmd.Parameters.Add("@username", SqlDbType.VarChar, 50).Value = UsernameTextBox.Text
	cmd.Parameters.Add("@password", SqlDbType.Char, 32).Value = MD5Hash(PasswordTextBox.Text)
	cmd.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = EmailTextBox.Text
	cmd.ExecuteNonQuery()
Catch ex As Exception
	MessageBox.Show("Error while inserting record on table..." & ex.Message, "Insert Records")
Finally
	con.Close()
End Try



#5 Rock

Rock

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht vandaag, 12:23
  • LocatieVlaanderen

Geplaatst op vandaag, 11:35

dank u, ik het echter nog een ander probleem, ik probeer namelijk de som te maken van alle items in een kolom.  ik heb het volgende geprobeerd :

Dim strQ As String = String.Empty
strQ = "Select Merk, ArtikelOmschr, Prijs, Aantal, Totaal From tbl_Invent where  Aantal > 0"

Dim Alles As Decimal
Alles = "Select sum(Totaal) From tbl_Invent;"

dit werkt helemaal niet, en als ik "Alles" als string definieer werkt het natuurlijk ook niet want dan krijg ik uiteraard de tekst "Select ........"

de uitkomst met wel een decimaal getal zijn

lblAlles.Text = "Totaal : " & Alles & " euro."

#6 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 789 berichten
    Laatst bezocht vandaag, 12:52
  • LocatieMechelen (BE)

Geplaatst op vandaag, 11:47

Wat zit er in die totaal? En in een db is het niet de bedoeling dat je totalen bijhoud want een totaal kan afhangen van de btw/kortingen enzo

In principe zou die sum() moeten werken.

#7 Rock

Rock

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht vandaag, 12:23
  • LocatieVlaanderen

Geplaatst op vandaag, 12:23

die totaal bevat de prijs x het aantal





Ook met taq VS 2015, VS2015 voorzien

0 gebruiker(s) lezen dit onderwerp

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

Inloggen


[VS 2015] 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)