Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable头格式_Java_Swing_Jtable_Jtableheader_Database Metadata - Fatal编程技术网

Java JTable头格式

Java JTable头格式,java,swing,jtable,jtableheader,database-metadata,Java,Swing,Jtable,Jtableheader,Database Metadata,我想更改显示SQL Server数据库中数据的JTable的标题,因为它在我的数据库中也显示相同的列名。我只需要数据本身,而不是列名 下面是我用来显示数据的代码: public void search() throws Exception{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:*****"; String user = "***

我想更改显示SQL Server数据库中数据的
JTable
的标题,因为它在我的数据库中也显示相同的列名。我只需要数据本身,而不是列名

下面是我用来显示数据的代码:

public void search() throws Exception{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:*****";
            String user = "*****";
            String pass = "*****";
            Connection con =  DriverManager.getConnection(url, user, pass);
            Statement state = con.createStatement();
            ResultSet rs = state.executeQuery("SELECT * FROM dbo.Patients");
            ResultSetMetaData rsmetadata = rs.getMetaData();
            int columns = rsmetadata.getColumnCount();
            DefaultTableModel dtm = new DefaultTableModel();
            Vector column_name = new Vector();
            Vector data_rows = new Vector();

            for (int i=1; i<columns;i++){
                column_name.addElement(rsmetadata.getColumnName(i));
            }
            dtm.setColumnIdentifiers(column_name);

            while(rs.next()){
                data_rows = new Vector();
                for (int j=1; j<columns; j++){
                data_rows.addElement(rs.getString(j));
                }
                dtm.addRow(data_rows);
            }
            tblPatient.setModel(dtm);
    }
public void search()引发异常{
forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
String url=“jdbc:odbc:****”;
字符串user=“*******”;
字符串传递=“*******”;
Connection con=DriverManager.getConnection(url、用户、通行证);
语句状态=con.createStatement();
结果集rs=state.executeQuery(“从dbo.Patients中选择*);
ResultSetMetaData rsmetadata=rs.getMetaData();
int columns=rsmetadata.getColumnCount();
DefaultTableModel dtm=新的DefaultTableModel();
向量列_name=新向量();
向量数据_行=新向量();

对于(int i=1;i我将尝试修改您的选择:

反而

从dbo.患者中选择*

使用


选择pId作为“患者ID”…
将您的
选择*从dbo更改为
。患者
选择pIDNo作为“患者ID”,pLName作为“…

是最简单的方法。而且,命名列名而不是使用
*
更快。

我会更改查询以检索每个列并更改名称。否则,我会在
列名称中查找列名并更改名称(当然,最后一个是非常幼稚的).与问题无关,但最好通过
ArrayList`更改
Vector:@LuiggiMendoza并不真正知道Vector是什么,我只是按照网站上的一些指示,在google上显示数据到JTable,结果的问题是缺少一个数据,该数据具有货币数据类型,应该是l最后一部分,但它没有出来,是因为我使用了Vector吗?我不这么认为,因为您将所有数据检索为
String
。看起来像是一个驱动程序问题。由于您连接到MSSQL,最好使用或代替ODBC。sir@LuiggiMendoza我不知道如何使用它,我认为它是一样的,因为它是ODBC:'JDBC'.我想我必须从头开始…你知道如何将货币数据类型显示到JTable吗?@CrystalMaiden:这是一个新问题;请先回顾一下。