webForumDet fria alternativet

flera tabeller i datareader?

.NET

12 svar · 352 visningar · startad av piddy

Medlem sedan aug. 200253 inlägg
Frågan#1

Kan jag binda flera tabeller till en och samma DataReader,
så som man kan göra med ett DataSet?

Medlem sedan apr. 20012 266 inlägg
#2

ja, du menar följande?

dim objReader As SqlDataReader

myDD.Datasource = objReader
myDD.DataBind()

myDD2.Datasource = objReader
myDD2.DataBind()

detta ska nog fungera utmärkt... om inte kör med dataset

Medlem sedan aug. 200253 inlägg
#3

åh, egentligen blev min fråga nog något felställd...ursäkta!

innan jag initierar en DataReader gör jag följande:

dim objData as new OleDbCommand ("SELECT * FROM Tabell1)

Kan jag här välja att plocka ut info från flera tabeller, typ flera
SELECT * -satser efter varandra så att jag sedan i min DataReader kan välja vilken data som ska knytas till vilken webbkontroll?

Medlem sedan juni 20011 732 inlägg
#4

Det är nog smidigare att du lägger din tabell i ett dataset istället och fyller respektive DDL med rätt kolumn:

DDL1.DataSource = ds.Tables["tabell1"];
DDL1.DataTextField = "kolumn1";
DDL1.DataBind();

DDL2.DataSource = ds.Tables["tabell1"];
DDL2.DataTextField = "kolumn2";
DDL2.DataBind();

Medlem sedan aug. 200253 inlägg
#5

ok! DataSetet kan jag alltså fylla med flera tabeller?
Hur ser koden ut då?

Medlem sedan juni 20011 732 inlägg
#6

Jajemen, du kan ha flera tabeller i ett DataSet. Har du bara en tabell kan du använda DataTable istället. Lite förenklat:

DataSet ds = new DataSet();

myCommand1.Fill(ds, "tabell1");
myCommand2.Fill(ds, "tabell2");

DDL1.DataSource = ds.Tables["tabell1"];
DDL2.DataSource = ds.Tables["tabell2"];

Medlem sedan aug. 200253 inlägg
#7

och DDL står i detta fall för en...?
serverkontroll?

Medlem sedan juni 20011 732 inlägg
#8

Jaa, det är en förkortning för DropDownList bara. Namnet (id) på kontrollen som ska fyllas alltså. :)

Kontrollen...
<asp:DropDownList id="DDL1" runat="server">

I koden...
DDL1.DataSource = ds.Tables["tabell1"];

Självklart sätter du ett bättre namn än DDL1 på kontrollen när du gör din sida!

Medlem sedan aug. 200253 inlägg
#9

tack för att du har tålamod att vara övertydlig!

det behövs

Medlem sedan aug. 200253 inlägg
#10

p.s
är kontentan av det hela att man ska undvika DataReader när man vill hämta info från flera tabeller?

Medlem sedan okt. 2002103 inlägg
#11

hmm... vill man hämta från flera tabeller är det ju snarare sql'en som ska sköta och binda ihop det.

Medlem sedan juni 20011 732 inlägg
#12

Nja, det är väl inte så säkert, jag kan tänka mig många tillfällen då du vill ha två helt olika tabeller i ett dataset, det är ju inte ens säkert att det finns gemensamma data på ett sådant sätt att du kan joina dem i sql.

Medlem sedan okt. 2002103 inlägg
#13

ok...

som jag förstod det vill du sätta ihop två tabeller (resultatset) till samma ds...

typ en UNION

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)