Hur gör man för att hämta data från en access-databas mha parametrar?
MS access och parametrar?
7 svar · 660 visningar · startad av inspiro
Har för mig att OLE har stöd för parametrar.. Så börja leta lite där.
Har kommit en bit på väg, men förstår fortfarande inte riktigt hur jag väljer var en specifik parameter ska in? Får inget fel och en av parametrarna verkar komma in men inte båda... jag ser inget mönster, blir lite hur som helst???
OleDbCommand cmd1 = con.CreateCommand();
cmd1.CommandText = "SELECT UserID, FirstName FROM Users WHERE FirstName = @p1 OR FirstName = @p2";
OleDbParameter p1 = new OleDbParameter();
cmd1.Parameters.Add(p1);
p1.Value = "Pelle";
OleDbParameter p2 = new OleDbParameter();
cmd1.Parameters.Add(p2);
p2.Value = "Kalle";
Nu tror jag att jag ser hur det fungerar... @0 är första parametern, @1 nästa oavsett vad parametern heter... :)
StefanBergfeldt skrev:
Är du säker på att det fungerar i Access?
Jag har för mig att Access inte har stöd för namngivna parametrar.
Är inte 100% säker, du kanske har rätt.
Detta fungerar:
int id = 3;
string authorName = "arne";
command.CommandType = CommandType.Text;
command.CommandText = "SELECT title FROM Testtabell WHERE id = ? AND authorName = ?;";
OleDbParameter param1 = new OleDbParameter("asdf", OleDbType.Integer);
param1.Value = id;
OleDbParameter param2 = new OleDbParameter("hjkl", OleDbType.VarChar);
param2.Value = authorName;
command.Parameters.Add(param1);
command.Parameters.Add(param2);
I SQL-frågan skriver man bara frågetecken där parametrarna ska in. När man sedan stoppar in parametrarna så är det viktigt att man stoppar in dem i rätt ordning, alltså samma ordning som de står i frågan. Namnen på parametrarna (i exemplet "asdf" och "hjkl") har ingen betydelse vad jag vet.