20. februar 2005 - 19:20Der er
34 kommentarer og 1 løsning
vise tekst fra database
jeg har en asp.net side, som er en del af et cms system. Teksten på siden skal derfor hentes i en database, så den gså kan ændres igen. Mit spørgsmål er, hvordan man kan tage teksten fra databasen og tilføre det til en kontrol? Jeg har prøvet med Literal og Label, men de kender ikke til DataSource, så jeg er lidt på bar bund...
hmm, jeg forstår ikke helt hvad du mener her.. Ok, jeg har min label, men jeg bliver tabt allerede i v. "string stringfradatabase..." Jeg har en klasse i en codebehind fil, som jeg bruger til at oprette en forbindelse og udføre et recordset. dvs. jeg kun skrive følgende i <script> blokken:
MySQL DBConn = new MySQL(); RecordSet rs = DBConn.Execute("Select * From pages Where pageID='frontpage'"); string stringfradatabase = (string)rs.dr.ExecuteScalar(); mitlabel.Text = stringfradatabase;
... men compileren siger den ikke kender udtrykket "ExecuteScalar" ?
hmm, det vil ikke virke! Det kan da ikke være rigtigt at det skal være så svært at hente noget simpel tekst ud af en database :( Men alm ASP var det ret simpelt.. :)
Er enig med Arne. Hvis du bare skal hente en strng ud og vise den er et DataSet nok lige i overkanten:D Mildest talt. Man kan sagtens hente data ud uden at bruge et dataset. Det forklarer Arne rimeligt fint.
hvis du kun henter en ting ud fra databasen, er ExecuteScalar, som arne beskriver, den rigtige at bruge. Hvis du henter flere ting ud og skal have bindet til flere labels skal du bruge en reader ov avancere til første record før du henter noget fra den:
1)
OleDbCommand command = new OleDbCommand(query, conn); conn.Open();
dinLabel.Text = (string)command.ExecuteScalar();
conn.Close();
2)
OleDbCommand command = new OleDbCommand(query, conn); conn.Open();
Hvordan ser hvilken SQL ud? Manden siger han vil hente EN streng ud fra en database og vise den i en Label. Og der mener jeg da bare han skal følge Arnes forslag med et kmmand objekt og en ExecuteScalar. Men det er ikke mig der har oprettet spørgsmålet:D
tak for svarene, men jeg er desværre ikke kommet videre...
Jeg vil helst kunne hente mere end en streng ud. Derfor burde jeg nok bruge forslag 2) (09:29:15), men da resten af mine database koder er lavet med Odbc hjælper det ikke så meget :(
arne: Hvad mener du med "bruge ADO.NET mere direkte"? Jeg troede det her var måden man gjorde det på, da jeg har set lignende løsninger i andre applikationer.
Din RecordSet klasse er vel ren "ASP emulering". Du kunne lige så godt bruge DataReader direkte. Det er ikke usædvaneligt at pakke connection og execute ind i en klasse, men normalt vil den returnere enten er DataReader eller en collection med instanser af en klasse.
Men: - jeg synes ikke at RecordSet klassen bidrager med funktionalitet - ASP udviklere vil finde den hjælpsom men ASP.NET udvikleree vil finde den forvirrende (og på langt sigt skal din applikation vel vedligeholdes af de sidste !)
okay, gode pointer. Jeg kan lide en mand der ved hvad han snakker om :D
Det projekt jeg er i gang med i øjeblikket er et eksamensprojekt, så det skal selvfølgelig helst være så perfekt som muligt, så jeg vil MEGET gerne lære mere om ADO.NET, så hvis du har nogle artikler/tutorials til at komme i gang med ville det være stort!
(du behøver ikke nødvendigvis bruge DAAB men du kan sikkert få lidt inspiration)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.