Avatar billede ihtezaz Praktikant
24. oktober 2004 - 16:28 Der er 7 kommentarer og
1 løsning

Problemmer med dynamisk tabel

Hej
Vi har lavet en dynamisk tabel, vha. panel control. Den henter noget fra DB, men alt bliver vist på en række, istedet for at skifte til næste række.

Her er koden til tabellen :

private void opretTable()
        {
            Table1.BorderWidth= 2;
            string connectionStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +
                Request.PhysicalApplicationPath + "Db\\Hamid.mdb";

            // Skab forbindelses-objekt udfra connectionStr
            OleDbConnection con = new OleDbConnection(connectionStr);


            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = con;

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "SELECT * FROM Skind";
            Table1.Width = 1000;
           
            con.Open();
            OleDbDataReader dr = cmd.ExecuteReader();

            while(dr.Read())
            {
                tblRow = new TableRow();
                tblCell = new TableCell();
                tblCell.RowSpan = 4;
                tblCell.Width= 200;
                tblCell.Text = dr.GetString(1);
                tblRow.Cells.Add(tblCell);
                Table1.Rows.Add(tblRow);

                tblRow1 = new TableRow();
                tblCell1 = new TableCell();
                tblCell1.RowSpan = 4;
                tblCell1.Width= 200;
                tblCell1.Text = dr.GetString(2);
                tblRow.Cells.Add(tblCell1);
                Table1.Rows.Add(tblRow1);
           


//                tblRow2 = new TableRow();
//                tblCell2 = new TableCell();
//                tblCell2.RowSpan = 4;
//                tblCell2.Width= 20;
//                tblCell2.Text = dr.GetValue(3).ToString();
//                tblRow2.Cells.Add(tblCell2);
//                Table1.Rows.Add(tblRow2);






//                tblRow3 = new TableRow();
//                tblCell3 = new TableCell();
//                tblCell3.RowSpan = 4;
//                tblCell3.Width= 20;
//                tblCell3.Text = dr.GetString(2);
//                tblRow3.Cells.Add(tblCell3);
//                Table1.Rows.Add(tblRow3);
               
               
       
            }

            con.Close();

            pnl.Controls.Add(Table1);
       

        }
Avatar billede snepnet Nybegynder
24. oktober 2004 - 16:41 #1
I de her to tilføjer du til samme row, men sætter du forskellige ind i tabellen.

                tblRow = new TableRow();
                tblCell = new TableCell();
                tblCell.RowSpan = 4;
                tblCell.Width= 200;
                tblCell.Text = dr.GetString(1);
                tblRow.Cells.Add(tblCell);
                Table1.Rows.Add(tblRow);

                tblRow1 = new TableRow();
                tblCell1 = new TableCell();
                tblCell1.RowSpan = 4;
                tblCell1.Width= 200;
                tblCell1.Text = dr.GetString(2);
                tblRow.Cells.Add(tblCell1);
                Table1.Rows.Add(tblRow1);
           
mvh
Avatar billede snepnet Nybegynder
24. oktober 2004 - 16:44 #2
men der er sådan set ingen grund til at du gør det på den måde der.... det her synes jeg selv plejer at være lidt mere overskueligt :

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

foreah(et eller andet)
{
  tr = new TableRow();
  foreach(noget andet)
  {
    tc = new TableCell();
    tr.Cells.Add(tc);
  }
  tbl.Rows.Add(tr);
}

Det er vel egentlig også det du er interesseret i ikke ?

mvh
Avatar billede snepnet Nybegynder
24. oktober 2004 - 16:46 #3
nøh... det er det vel egentlig ikke... du gerne have to rækker for hver række i basen ikke :

                tblRow = new TableRow();
                tblCell = new TableCell();
                tblCell.RowSpan = 4;
                tblCell.Width= 200;
                tblCell.Text = dr.GetString(1);
                tblRow.Cells.Add(tblCell);
                Table1.Rows.Add(tblRow);

                tblRow = new TableRow();
                tblCell = new TableCell();
                tblCell.RowSpan = 4;
                tblCell.Width= 200;
                tblCell.Text = dr.GetString(2);
                tblRow.Cells.Add(tblCell);
                Table1.Rows.Add(tblRow);

prøv sådan.

mvh
Avatar billede ihtezaz Praktikant
24. oktober 2004 - 16:51 #4
Ja vi ønsker en ny række for hver række i databasen.
Avatar billede snepnet Nybegynder
24. oktober 2004 - 16:55 #5
Så skulle det her være fint :

while(dr.Read())
{
    tblRow = new TableRow();
    tblCell = new TableCell();
    tblCell.Width= 200;
    tblCell.Text = dr.GetString(1);
    tblRow.Cells.Add(tblCell);

    tblCell1 = new TableCell();
    tblCell1.Width= 200;
    tblCell1.Text = dr.GetString(2);
    tblRow.Cells.Add(tblCell);

    Table1.Rows.Add(tblRow);
}

mvh
Avatar billede snepnet Nybegynder
24. oktober 2004 - 16:55 #6
Sorry !

while(dr.Read())
{
    tblRow = new TableRow();
    tblCell = new TableCell();
    tblCell.Width= 200;
    tblCell.Text = dr.GetString(1);
    tblRow.Cells.Add(tblCell);

    tblCell = new TableCell();
    tblCell.Width= 200;
    tblCell.Text = dr.GetString(2);
    tblRow.Cells.Add(tblCell);

    Table1.Rows.Add(tblRow);
}
Avatar billede ihtezaz Praktikant
24. oktober 2004 - 17:02 #7
danke den sidste virker helt fint. smid et svar
Avatar billede snepnet Nybegynder
24. oktober 2004 - 17:03 #8
svar her :o)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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