Avatar billede t_mons Nybegynder
09. marts 2004 - 14:33 Der er 4 kommentarer og
1 løsning

Kan man få antal kolonner og/eller kolonnenavne udfra resultset

mit problem er følgende

jeg ønsker en metode der som parameter tager et resultset og som skal returnere noget htmlkode...
ala.

public String executeResultset(ResultSet rs)
{
try

  buffer.setLength(0);
  int c = 1;
  if (rs != null)
  {
    buffer.append("<table border=1>");           
    while (rs.next())
    {
        buffer.append("<tr>");
    buffer.append("<td>");
    buffer.append(c+"");
    buffer.append("</td>");
        buffer.append("<td>");
    buffer.append(rs.getObject(1) + "");
    buffer.append("</td>");
    buffer.append("</tr>");
    c++;   
    }
    buffer.append("</table>");
  }
  }
  catch(Exception e)
  {
    System.out.println("Error"+e.getMessage());
  }
  return buffer.toString();
}


men kunne godt tænke mig overskrifter på tabellen...

eller er der andre måder at gøre det på !!!
Avatar billede mikkelbm Nybegynder
09. marts 2004 - 14:37 #1
Prøv med:

ResultSetMetaData data = rs.getMetaData();
int i = 1;
while (i <= data.getColumnCount())
{
    System.out.println (data.getColumnLabel(i));
    i++;   
}
Avatar billede arne_v Ekspert
09. marts 2004 - 14:58 #2
jep - overvej dog en for løkke
Avatar billede mikkelbm Nybegynder
09. marts 2004 - 15:00 #3
ja, selvfølgelig (ved ikke hvad jeg tænkte på :)

ResultSetMetaData data = rs.getMetaData();

for (int i = 1; i <= data.getColumnCount(); i++)
{
    System.out.println (data.getColumnLabel(i));
}
Avatar billede t_mons Nybegynder
09. marts 2004 - 15:03 #4
Det spiller bare.... 

Takker min løsning ser således ud

public String executeResultset(ResultSet rs)
{
  try
  { 
  buffer.setLength(0);
  int c = 1;
  if (rs != null)
  {
    ResultSetMetaData data = rs.getMetaData();

    buffer.append("<table border=1>");
    buffer.append("<tr>");
    buffer.append("<td colspan=" + data.getColumnCount() + ">");
    buffer.append(data.getTableName(1) + "");
    buffer.append("</td>");
    buffer.append("</tr>");           
    buffer.append("<tr>");
    int i = 1;
    while (i <= data.getColumnCount())
    {
        buffer.append("<td>");
        buffer.append(data.getColumnLabel(i) + "");
        buffer.append("</td>");
        i++;   
    }
    buffer.append("</tr>");           
                 
    while (rs.next())
    {
        buffer.append("<tr>");
        int j = 1;
        while (j <= data.getColumnCount())
        {
            buffer.append("<td nowrap>");
            buffer.append(rs.getObject(j) + "");
            buffer.append("</td>");
            j++;   
        }   
        buffer.append("</tr>");           
    }
    buffer.append("</table>");
    }
  }
  catch(Exception e)
  {
    System.out.println("Error " + e.getMessage());
  }

  return buffer.toString();
}
}


men getTableName kan jeg ikke dreje    :o)

men takker
Avatar billede t_mons Nybegynder
09. marts 2004 - 15:04 #5
retter lige til en for løkke !!!
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