Avatar billede troelsm Nybegynder
01. oktober 2004 - 23:51 Der er 11 kommentarer og
1 løsning

Placering af udtræk fra database i tabel på en bestemt position

Hejsa
Først jeg er rimelig ny til dette .NET - så der er givetvis et eller andet jeg overser.
Jeg kunne godt tænke mig at indsætte resultater fra et database opslag i en Tabel (jeg selv bygger) - men hvordan får jeg den til at bygge tabellen (altså skrive kode der hvor jeg gerne vil have den placeret på side.

Startkode - jeg har en listbox og når man vælger i denne skal den skifte resultatet. Det virker også til den txtBox jeg har nu - men det er jo ikke så pænt
// Skab forbindelses-objekt udfra connectionStr
con = new OleDbConnection(connectionStr);
   
// Skab kommando-objekt og tilknyt til forbindelses-objekt
cmd = new OleDbCommand();
cmd.Connection = con;
OleDbDataReader datareader;

if (valgtrk == 1)
  cmd.CommandText = "SELECT * FROM stilling where semiDivision = 'AB' order BY Score";
if (valgtrk == 2)
  cmd.CommandText = "SELECT * FROM stilling where semiDivision = 'C' order BY Score";

// Åben forbindelsen til databasen
con.Open();           
datareader = cmd.ExecuteReader();

int antal = 0;   
while (datareader.Read() == true)
{
antal += 1;
  TextBox1.Text += Convert.ToString(antal) + ", ";
  TextBox1.Text += Convert.ToString(datareader[0]) + ", ";
  TextBox1.Text += datareader[1] + ", ";
  TextBox1.Text += datareader[2] + ", ";
  TextBox1.Text += datareader[3] + ", ";
  TextBox1.Text += Environment.NewLine;
}
con.Close();            // Luk forbindelsen

}
Men istedet for at lave "output" til en TextBox ville jeg gerne selv lave en tabel og sørger for den blev placeret der hvor jeg gerne vil på siden.
Avatar billede snepnet Nybegynder
02. oktober 2004 - 00:01 #1
en tabel kan du skrive sådan her :

Table tbl = new Table();
TableRow tr = null;
TableCell tc = null();

while(datareader.Read())
{
  tr = new TableRow();
  tc = new TableCell();
  tc.Text = ... // dem du har
  tr.Cells.Add(tc);
  tbl.Rows.Add(tbl);
}
Avatar billede snepnet Nybegynder
02. oktober 2004 - 00:02 #2
Med hensyn til placeringen på siden, kan du gøre det på forskellige måder.
Du kan udnytte designeren, hvis du arbejder i en ide som visual studio eller webmatrix, og placere f.eks. et Panel der hvor du ønsker tabellen skal optræde.

dit Panel vil så stå i koden som :

protected Panel somePanel;

og du kan så indsætte din tabel i det :

somePanel.Controls.Add(tbl);
Avatar billede snepnet Nybegynder
02. oktober 2004 - 00:04 #3
De "placeringsstyles" der indsættes af ide'et kan du også tilføje til en given kontrol ved :

tbl.Styles.Add("position","absolute");
tbl.Styles.Add("left","10px");
tbl.Styles.Add("top","50px");

mvh
Avatar billede snepnet Nybegynder
02. oktober 2004 - 00:08 #4
Og for øvrigt kan det være praktisk at du laver en dekleration af en form i din code-behind (hvis du bruger det).

protected HtmlForm Form1; // visual plejer at navngive formen Form1 som standard.

Så kan du skrive kontroller ud til den direkte :

Form1.Controls.Add(tbl); // tabellen fra før

mvh
Avatar billede troelsm Nybegynder
02. oktober 2004 - 00:33 #5
Hejsa !
Yeps jeg arbejder i .NET 2003 (så jeg bruger code-behind)
Dit eksempel virker perfekt (skulle lige rette et par småfejl/slåfejl i dit Table eksempel) men ellers perfekt nu kan jeg jeg gøre lige det jeg vil - ivertfald til at starte med - så arbejder jeg selv videre - skal bla. have en knap ind på alle rækker som viser en nye tabel med data fra databasen baseret på den række man har trykket på

Drop lige et svar så sender jeg nogle points
I øvrigt må du gerne komme med yderligere kommentar hvis der er noget du mener jeg skal vide.
Avatar billede snepnet Nybegynder
02. oktober 2004 - 00:46 #6
Et svar her, og du siger bare til hvis der er andet :o)
Noget du skal vide.... hmmm.... hvor er det planen at du vil vise den nye tabel der skal dukke op når der trykkes på knappen ?
mvh
Avatar billede troelsm Nybegynder
02. oktober 2004 - 01:01 #7
Jeg har tænkt mig at hver række skulle have en knap (alternativ) en hyperlink til samme side, også skal den nye tabel vises under den øverste.
Avatar billede snepnet Nybegynder
02. oktober 2004 - 01:04 #8
ok - hvis du vil håndtere events i den tabel du indsætter kommer du sansynligvis til at løbe ind i et par problemer.
skal du det ?
(altså skal der være knapper eller lignende i den ?)
Avatar billede troelsm Nybegynder
02. oktober 2004 - 01:15 #9
ja jeg havde faktisk tænkt mig at der skulle være en knap (eller en link) som gjorde at man danne en ny tabel (under den første) med resultater fra en database baseret på ens valg i den øverste tabel
Avatar billede snepnet Nybegynder
02. oktober 2004 - 01:21 #10
ok... nu skal vi lige passe på at vi ikke snakker forbi hinanden her :o)

Det jeg mente var om du forventede at skulle håndteres events fra den anden tabel du indsætter på baggrund af f.eks. et knaptryk i den første tabel ?
(det er første der problemerne for alvor kan opstå ;o)

mvh
Avatar billede troelsm Nybegynder
02. oktober 2004 - 01:27 #11
hehe,
nej der skal ikke håndteres noget fra den anden tabel.
Det er en stilling jeg arbejder på. En score i den første tabel er baseret på nogle delresultater - det var min hensigt at når man trykkede på scoren i den første tabel bliver disse delresultater vist.
Avatar billede snepnet Nybegynder
02. oktober 2004 - 01:42 #12
så tror jeg ikke du løber ind i noget specielt ubehageligt, men sig endelig til hvis der skulle dukke noget op :o)
god fornøjelse med det.
mvh
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester