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

标签 android sql-server jdbc android-studio

我已经使用 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());
}

最佳答案

创建如下模型类:

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());

我想这对你有帮助!

关于android - 如何在 ListView 或 TableView 中显示来自 SQL Server 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29966579/

相关文章:

android - 打开文件 Android Marshmallow 时 FileNotFound EACCESS

android - 通过 http 将 JSONObject 从 android 应用程序发送到 node.js?

sql-server - 在 CentOS 246MB RAM、Apache 和 PHP 上存储数据的最佳性能 SQL 数据库是什么?

sql-server - SQL 表 - 插入和删除超时,选择确定

java - 无法连接到 Sybase 数据库

java - NullpointerException 与连接对象创建 SQL 语句

android - 带 DisplayCutout 的全屏应用程序

javascript - Android - 深度链接并非在所有情况下都适用于所有浏览器

SQL 服务器 MDF 文件

java - 在 hsqldb 1.8.1.3 之上基于 Hibernate 的代码的单元测试不再适用于 hsqldb 2.2.9