webForumDet fria alternativet

få fram data från databas...

.NET

10 svar · 450 visningar · startad av dea

Medlem sedan dec. 2002387 inlägg
Frågan#1

skriver i: C# Asp.net

Jag har en sida där jag lägger ut namnen på alla medlemmar som finns i databasen. Jag lägger ut dem så här:

string SQL = "SELECT FNamn + ' ' +ENamn as namn FROM Users ORDER BY ENamn";
SqlCommand com = new SqlCommand(SQL, con);

con.Open();
SqlDataReader dr = com.ExecuteReader();

while(dr.Read())
medlemmar.Text +="<a href='#'>"+(dr["namn"]).ToString()+"</a></ br>";		
dr.Close();
con.Close();

vidare vill jag klicka på varje medlem och få fram info om dessa. Informationen ligger i en databas under tabellen Users.

Hur gör jag detta på bästa sätt?

Och är mitt sätt att få fram mina medlemmar det smartaste sättet att göra det på? Eller finns det något annat sätt?

Medlem sedan juni 20011 732 inlägg
#2

Undvik html i koden. Jag skulle lägga en linkbutton i en repeater istället och fylla på medlemmarna i den. Då har du en kontroll färdig att använda när du sedan vill plocka fram info om en medlem.

Medlem sedan dec. 2002387 inlägg
#3

men om jag nu vill skriva "ful kod", hur är bästa sättet att få fram datan för varje medlem?

Medlem sedan okt. 20005 273 inlägg
#4

Om du ska skriva fulkod så ta med ett id ur USERS tabellen och skicka med den som en QueryString.

[red]
string SQL = "SELECT id, FNamn + ' ' +ENamn as namn FROM Users ORDER BY ENamn";
SqlCommand com = new SqlCommand(SQL, con);

con.Open();
SqlDataReader dr = com.ExecuteReader();

while(dr.Read())
medlemmar.Text +="<a href='medlem.aspx?id="+(dr["id"]).ToString()+"'>"+(dr["namn"]).ToString()+"</a></ br>";		
dr.Close();
con.Close();
[/red]

Sedan i medlem.aspx så tar du querystringen som en referens i din SQL för att plocka ur datan för just den medlemmen.

Men detta är ju inte rekomendera. Då det finns lösningar i ASP.NET som är ljusår bättre.

mv icaaq

Medlem sedan dec. 2002387 inlägg
#5

Nu är det så, och jag kanske inte förklarade så bra, men jag har ska inte öppna en ny sida medlem för medlem utan det ska komma upp på samma sida som länkarna är på...

Medlem sedan juni 20019 024 inlägg
#6

dea skrev:

men om jag nu vill skriva "ful kod"

Varför i hela friden vill du göra det? När du väl har ett kraftfullt språk vid fingerspetsarna är det väldigt dumt att inte utnyttja det! Vill du skriva fulkod bör du nog titta på asp eller php.

Medlem sedan juni 20015 009 inlägg
#7

Pace skrev:

dea skrev:

men om jag nu vill skriva "ful kod"

Varför i hela friden vill du göra det? När du väl har ett kraftfullt språk vid fingerspetsarna är det väldigt dumt att inte utnyttja det! Vill du skriva fulkod bör du nog titta på asp eller php.

Jag förstår inte varför han skulle välja php om man vill skriva fulkod. :q

Medlem sedan dec. 2002387 inlägg
#8

Page skrev:

Varför i hela friden vill du göra det? När du väl har ett kraftfullt språk vid fingerspetsarna är det väldigt dumt att inte utnyttja det! Vill du skriva fulkod bör du nog titta på asp eller php.

Bara för att jag inte har tid att ändra och sätta mig in i det just nu.

Medlem sedan juni 20019 024 inlägg
#9

Qimen skrev:

Jag förstår inte varför han skulle välja php om man vill skriva fulkod. :q

För att det oftast blir så per automatik. Du kan skriva php och asp som efterapar objektorienterat, men det är knappast lika vanligt. Jag vill inte ha något språkkrig, det är det värsta jag vet. :x

dea skrev:

Bara för att jag inte har tid att ändra och sätta mig in i det just nu.

Du kan se det från två perspektiv:

1. Du lägger ned mycket tid i början på att lära dig.
2. Du lägger ned mindre tid under arbetet.

Eller hardcode-style:

1. Du lägger ned minimalt med tid på att lära dig.
2. Du lägger ned väldigt mycket tid på att arbeta ineffektivt.

Välj språk efter förutsättningar.

Medlem sedan juni 20015 009 inlägg
#10

Pace skrev:

Qimen skrev:

Jag förstår inte varför han skulle välja php om man vill skriva fulkod. :q

För att det oftast blir så per automatik. Du kan skriva php och asp som efterapar objektorienterat, men det är knappast lika vanligt. Jag vill inte ha något språkkrig, det är det värsta jag vet. :x

Alla som jobbar med php lite mer seriöst skriver allt i klasser och OO. Med tanke på att PHP5 kommer snart och php börjar bli alltmer OO så kan det bli ett mycket intressant språk.

Aja vi släpper detta, för denna gången iaf. :p §e

Medlem sedan juni 20011 732 inlägg
#11

Bara för att jag inte har tid att ändra och sätta mig in i det just nu.

Det är inte speciellt komplicerat, snarare lättare än om du röjer runt med html i koden. :) Börja med en repeater och en linkbutton (pseudokod):

<asp:Repeater id="myR" Runat="server">
  <ItemTemplate>
    <asp:LinkButton CommandArgument='<%# DataBinder.Eval(Container, "DataItem.ID") %>' Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>' OnClick="myLB_Click"  Runat="server"></asp:LinkButton>
    </br>
  </ItemTemplate>
</asp:Repeater>

Nu ska du fylla din repeater. Som icaaq skrev så är det bra om du även hämtar ett id från users, namnet är ingen bra nyckel. Detta id lägger du som ett commandargument som du sedan använder för att hämta medlemsdata i funktionen kopplad till din linkbutton. Funktionen när du klickar på din linkbutton ser då ut nåt i den här stilen:

protected void myLB_Click(object sender, System.EventArgs e) {
  int ID = myLB.CommandArgument;
  // hämta medlemsdata med hjälp av ID:t ovan
}
265 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)