webForumDet fria alternativet

MS access och parametrar?

.NETur .NET

7 svar · 660 visningar · startad av inspiro

inspiroMedlem sedan sep. 2005673 inlägg
#1

Hur gör man för att hämta data från en access-databas mha parametrar?

ZaimanMedlem sedan dec. 20014 239 inlägg
#2

Har för mig att OLE har stöd för parametrar.. Så börja leta lite där.

inspiroMedlem sedan sep. 2005673 inlägg
#3

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";
inspiroMedlem sedan sep. 2005673 inlägg
#4

Nu tror jag att jag ser hur det fungerar... @0 är första parametern, @1 nästa oavsett vad parametern heter... :)

NickemannenMedlem sedan aug. 20003 575 inlägg
#5

p1.Name = "@firstname";
så kan du skriva @firstname i sqlsatsen.

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#6

Nickemannen skrev:

p1.Name = "@firstname";
så kan du skriva @firstname i sqlsatsen.

Ä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.

NickemannenMedlem sedan aug. 20003 575 inlägg
#7

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.

haagelMedlem sedan feb. 2006134 inlägg
#8

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.

127 ms totalt · 3 externa anrop · v20260731065814-full.b2af184d
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)