【问题标题】:Why is my SQL Query only selecting the last entry in a column [closed]为什么我的 SQL 查询只选择列中的最后一个条目 [关闭]
【发布时间】:2021-04-28 22:20:30
【问题描述】:

我正在尝试从 Android 应用程序连接到 SQL Server,经过几天的努力,我终于弄明白了。现在我遇到了一个更简单的问题。我的选择查询只选择表中的最后一个值。该表目前仅包含字符串值,因为它是一个测试表。这是我在代码中写的。

public void sqlButton(View view) {
    if (connection != null) {
        Statement statement = null;
        try {
            statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("Select * from [dbo].[Table_1];");
            while (resultSet.next()) {
                textView.setText(resultSet.getString(1));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    else {
        textView.setText("Connection is null");
    }
} 

【问题讨论】:

    标签: java sql-server android-studio


    【解决方案1】:

    您的问题可能是您每次都覆盖了输出文本。

    将此写入多行文本字段,以便查看所有结果:

    textView.setText(textView.getText() + "\n" + resultSet.getString(1));
    

    【讨论】:

    • 谢谢。如何让它遍历每一行而不是一次显示全部>?
    • 嗯.. while 循环实际上就是这样做的。将您的代码扩展至 while (resultSet.next()){ textView.setText(resultSet.getString(1)); System.out.println("Entry: " + resultSet.getString(1)); } 以查看这是否实际发生
    【解决方案2】:

    实际上,选择查询会返回表中的所有记录。但是,问题出在这部分 while (resultSet.next()){ textView.setText(resultSet.getString(1));} 下一个循环中的文本将替换上一个循环中的文本。因此,您只能看到最后一个。

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      相关资源
      最近更新 更多