如何在 ListView 或 TableView 中显示来自 SQL Server 的数据

Posted

技术标签:

【中文标题】如何在 ListView 或 TableView 中显示来自 SQL Server 的数据【英文标题】:How to display data from SQL Server in a ListView or TableView 【发布时间】:2015-04-30 11:31:35 【问题描述】:

我已使用 JTDS v.1.2.8 连接到我的 SQL Server

我是 JDBC 插件的新手,我正在努力解决这个问题。我也确实在论坛上查看了相关的问题/答案,但我找不到,所以我在这里问:)

我想要实现的是,我想以更好的方式显示从 SQL 数据库获取的数据,例如 listView 或 tableView。

这是我目前正在使用的代码,我只是调用“tblItems”,它只是在 textView 中显示表格的信息,它可以工作,但看起来和阅读它有点糟糕。

非常感谢任何评论或回答指出我的解决方案。

感谢您的宝贵时间。

    TextView tv = (TextView)this.findViewById(R.id.display);
    try 
    Class.forName("net.sourceforge.jtds.jdbc.Driver");
    Connection con = DriverManager.getConnection(url, username, password);
    System.out.println("Database connection successfully");

    String result = "Database connection success\n";

    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("select * from tblItems");
    ResultSetMetaData rsmd = rs.getMetaData();

    while(rs.next()) 
        result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
        result += rsmd.getColumnName(2) + ": " + rs.getString(2) + "\n";
        result += rsmd.getColumnName(3) + ": " + rs.getString(3) + "\n";

    
    tv.setText(result);



catch(Exception e) 
    e.printStackTrace();
    tv.setText(e.toString());

【问题讨论】:

【参考方案1】:

创建如下模型类:

public class Model

    private int one;
    private String two;
    private String three;

    // Getters and Setters omitted

然后,从你的数据库中获取数据并放入一个List中,例如:

List<Model> list = new ArrayList<Model>();
try

    Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
    Connection con = DriverManager.getConnection( url, username, password );
    System.out.println( "Database connection successfully" );

    String result = "Database connection success\n";

    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery( "select * from tblItems" );
    ResultSetMetaData rsmd = rs.getMetaData();

    while ( rs.next() )
    
        Model obj = new Model();
        obj.setone( rs.getInt( 1 ) );
        obj.settwo( rs.getString( 2 ) );
        obj.setthree( rs.getString( 3 ) );
        list.add( obj );
    


catch ( Exception e )

    e.printStackTrace();

创建一个 ListViewadapter 并将该列表传入:

ListViewAdapter adapter=new ListViewAdapter(this, list);  
listView.setAdapter(adapter); 

最后,您可以像这样在ListViewAdapter 类中获取您的数据,并根据需要设置为ListView

txt1.setText(list.get(position).getone());
txt2.setText(list.get(position).gettwo());
txt2.setText(list.get(position).gethree());

我想这会对你有所帮助!

【讨论】:

非常感谢您的详细回答,我会很快测试它,我相信这会很好用,再次感谢和欢呼。

以上是关于如何在 ListView 或 TableView 中显示来自 SQL Server 的数据的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms - 如何让 TableView 和 ListView 扩展到 iPhone X 安全区域?

使用 TableView 作为 ListView-delegate

JavaFx:窗口切换和ListView以及TableView的值绑定

cocos中listview,tableview哪个更好一点

React-Native之ListView的3种样式

python StandardItem / ViewでTableViewとListViewに表示テスト