【问题标题】:Getting columnnames and then replace it into rs.getString()?获取列名,然后将其替换为 rs.getString()?
【发布时间】:2013-12-10 16:17:52
【问题描述】:

我正在连接到一个 sqlite 数据库并获取所有列名。我需要帮助的是将这些列名放在 rs.getString 中,然后将抓取的值插入到字符串数组中,然后可以在 tablemodel 上设置。

我现在的代码:

 stmt = c.createStatement();
  ResultSet rs = stmt.executeQuery(query);

  ResultSetMetaData rsmd = rs.getMetaData();
  int columnCount = rsmd.getColumnCount();

 // The column count starts from 1
 for (int i = 1; i < columnCount + 1; i++ ) {
 String name = rsmd.getColumnName(i);
 System.out.println(name);
 // Do stuff with name
 model.setColumnCount(i);


 }

  while ( rs.next() ) {
    String value1 = "";
      String value2 = "";
        String value3 = "";
          String value4 = "";
     value1 = rs.getString("SNO");
     value2 = rs.getString("SNAME");
     value3 = rs.getString("STATUS");
     value4 = rs.getString("CITY");


     model.addRow(new Object[] { value1,value2,value3,value4});

  }

我希望它是什么:

  stmt = c.createStatement();
  ResultSet rs = stmt.executeQuery(query);

  ResultSetMetaData rsmd = rs.getMetaData();
  int columnCount = rsmd.getColumnCount();

  // The column count starts from 1
   for (int i = 1; i < columnCount + 1; i++ ) {
    String name = rsmd.getColumnName(i);
    System.out.println(name);
   // Do stuff with name
   model.setColumnCount(i);


  }

  while ( rs.next() ) {
   String values[];
   values[] = rs.getString(name);        

     model.addRow(new Object[] {values[]});

      }

【问题讨论】:

    标签: java sqlite resultset


    【解决方案1】:

    不要一直打电话给model.setColumnCount(i);。只需设置一次(在 for 循环之外),就像这样 model.setColumnCount(columnCount); Also

    // Do stuff with name
    model.setColumnCount(i); // Not this...
    
    // Do stuff with name
    model.setColumnName(i, name); // Something like this... that is set the name
    

    【讨论】:

    • 这些都是很好的建议,谢谢!但我认为你误解了我的问题。我需要做的是而不是 value1 = rs.getString("SNO");等我想用名称字符串替换“SNO”。然后有一个获取所有数据的数组。
    • 代替:value1=rs.getString("sno");我想要:values[] = rs.getString(name);
    • 是的。 value1 = rs.getString(model.getColumnName(i));
    • 我试过你的线路,但它不起作用:/它给了我错误。不存在 F 列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多