Har grava problem med att skicka med en variabel (sträng) med en sql fråga. Anv. mig av access men det verkar inte som att den förstår vilket värde den innehåller??? Det funkar om man skriver ett statiskt värde... Är ny på VB och vet inte riktigt hur namnrymderna fungerar! Så här ska Where satsen vara Man kan använda både plus-tecknet (+) och och-tecknet (&) för att konkatenera strängar. Nu har jag gjort om som du sa men allt jag får tillbaka är bara tabellnamnen...hmm!! Om jag vill skriva ut ett värde till konsollen i testsyfte...vilket kommando ska jag skriva då? Jag vill ju kolla så att min variabel (bilplat) verkligen inehåller nåt...har testat med: Eftersom du använder dataset så antar jag att du jobbar med vb.net (du har dock postat frågan i visual basic som inte är samma sak...). Så här gör man med C# inställningar men borde vara samma för vb.net: När du har kollat värdet i variabeln så kanske du även ska kolla vilka värden du har i databasen... Jag har prövat med att sätta en breakpoint när jag tilldelat bilplat med "ozk542"...men det gånt nå! Så här blir det: Ja nu är det fixat! Gjorde om databaskopplingen manuellt i metoden....fan va gött! Nu tar jag helg :-)Skicka med en variabel till en sql fråga...
Så här är det...jag tar emot en parameter från en metod och vill sedan använda den i min sql fråga...jag har deklarerat en variabel först i min klass som jag sedan tilldelar med variabeln från metoden...men men...här kommer koden och jag hoppas nån kan förklara vad jag gjort för fel!!!
Dim bilplat As String
<WebMethod()> Public Function GetCarInfo(ByVal _bilplat As String) As DataSet
bilplat = _bilplat
bilplat = "ozk542" //Testsyfte
Dim dataset As New DataSet()
Me.OleDbDataAdapter1.Fill(dataset)
Return dataset
End Function
SQL FRÅGAN:
Me.OleDbSelectCommand1.CommandText = "SELECT Effekt, Färg, Maxlast, Regnummer, Släpvagnsvikt FROM BiluppgifterVägverket" & _
" WHERE (Regnummer ='+" & bilplat + "')"
Me.OleDbSelectCommand1.Connection = Me.OleDbConnection1Sv: Skicka med en variabel till en sql fråga...
<code>" WHERE (Regnummer ='" & bilplat & "')" </code>
du måste ha & tecknet efter bilplat för att få med dig sista apostrofen '.
Vad du ska med + till vet jag inte...Sv: Skicka med en variabel till en sql fråga...
Men det är tydligare att använda och-tecknet (&) när man ska slå ihop 2 eller flera strängar så man vet (ser) att man inte ska addera tal.
MickeMåste vara nåt annat!
Console.Write(bilplat)
...men den vägrar ju skriva ut nåt!?!
Haha jag är bara van med Java så jag tycker det är lite onaturligt :-)
Tack på förhand!Sv: Måste vara nåt annat!
Om du sätter en breakpoint efter att din variabel fått innehåll och sedan längst ner i fönstret väljer fliken "Command Window" så skriver du (inklusive frågetecknet)
?bilplat
och trycker enter så ser du vad den innehåller.
Om du i command window ser teckent >
så skriv >immed
för att komma i rätt läge.Sv: Måste vara nåt annat!
och bara en liten petkommentar. Det är inte tabellnamnen du får tillbaka, det är kolumnhuvudena. =)
/EmmaHmmm Hmmm...
?regnummer
The expression cannot be evaluated while in design mode.
Jag kanske ska förklara lite mer i detalj vad jag ska göra. Så här är det:
Jag ska göra en webservice som tar emot en variabel (regnummer) och med denna variabel ska jag hämta ut rätt bil från databasen. Jag har glort kopplingen till databasen i design läget och den skapar då koden (koppling och sql frågan) automatiskt.
Sen har jag då min WebMethod som ligger utanför den koden och det verkar inte som att jag förstått detta rätt. Jag har deklarerat en variabel först i min klass som jag sedan tilldelar med min inkommande parameter från min WebMethod. Sedan använder jag denna variabel i den kod som automatiskt har skapats...ni vet i:
#Region " Web Services Designer Generated Code "
...bla bla...
Me.OleDbSelectCommand1.CommandText = "SELECT Effekt, Färg, Maxlast, Regnummer, Släpvagnsvikt FROM BiluppgifterVägverket" & _
" where (Regnummer = '" & regnummer & "')"
Me.OleDbSelectCommand1.Connection = Me.OleDbConnection1
...bla bla...
#End Region
<WebMethod()> Public Function HämtaBil(ByVal _regnummer As String) As DataSet
regnummer = _regnummer
regnummer = "ozk542" //Testing
Dim dataset As New DataSet()
Me.OleDbDataAdapter1.Fill(dataset)
Return dataset
End Function
Som ni kanske ser har jag ändrat från "bilplat" till "regnummer"
Varför fattar den inte?...går det att göra så har som jag tänkt?
Tack å bock på förhand till den som orkar bry sig!
MVH / JohanIhaaa
Tack alla! Hej hej!