18. marts 2006 - 15:06Der er
11 kommentarer og 1 løsning
Lave SQL-kald med parametre
Hej
Når jeg skal finde alle personer, som bor indenfor samme postnummer skriver jeg som nedenstående:
SQL-kald: "SELECT AntoID, Navn, Efternavn, Postnummer FROM Personer WHERE (Postnummer = ?)"
Kode i VB.NET: OleDbDataAdapter1.SelectCommand.Parameters("PostNummer"). Value = 8200
MEN hvad nu hvis jeg skal finde dem der bor i postnummer 8000 til 8200. SQL-kaldet er enkelt, men sagen er straks en anden når jeg nu skal sende 2 variabler: "SELECT AntoID, Navn, Efternavn, Postnummer FROM Personer WHERE Postnummer BETWEEN ? AND ?"
Har undret mig længe over hvordan det foregår, så please en detaljeret løsning - af samme grund også alle de points.
Nej, den del har jeg aldrig rigtig forstået, da det for mig for det meste har virket uden (f.eks. det første af mit eksempel). Hvad går det ud på og hvad skal jeg skrive?
hvis du har et query der ligner det her SELECT Adresse, Postnr FROM nyhedsbreve WHERE (Postnr between ? and ?)
I mit tilfælde hedder den Filby4
Du kan så bruge dette i det felt du ønsker skal aktivere den fek.s i en dopdown ved change såldes: Try
Me.NyhedsbreveTableAdapter1.FillBy4(Me.EmailDataSet1.nyhedsbreve, cbopost1.SelectedValue, cbopost2.SelectedValue) Catch ex As System.Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try
her skal du bemærke cbopost1.SelectedValue og cbopost2.SelectedValue der begge er værdier fra dropdownbokse men istedet kan du placere dine variabler.
Når du skriver me. efter try kommer valg muligheden for din connection i dette tilfælde NyhedsbreveTableAdapter1 derefter et . så kan du vælge hvilken query du vil bruge, resten er bare derud af.
Havde ikke den vigtige Imports System.Data.OleDb med, hvorfor det blev lidt svært at adde. Du bruger i din artikel @ foran parametre, men det virker ikke hos mig hvor jeg i stedet har brugt : for parameterernes navne.
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.