Return "SELECT" sql 命令

Return "SELECT" sql command

我试图让我的表单包含 Postgres 数据库的 table 的所有行,为此我使用了带有 2 列(名称和密码)的 DataGridView,并在数据库中搜索值。但我是新手,我不知道如何获取数据库数据并将其放入 DataGrid。

基本上我想在我的 C# 申请表中显示相同的 pgAdmin 可视化 table。

Postgre.cs:

public static NpgsqlDataReader listUsers()
        {
            string sqlCommand = "SELECT name, senha FROM users";
            NpgsqlCommand cmd = new NpgsqlCommand(sqlCommand, Connect());

            NpgsqlDataReader reader = cmd.ExecuteReader();

            return reader;
        }

frmAdmin:

public partial class frmAdmin : Form
    {
        public frmAdmin()
        {
            dataGridView1.DataSource = Postgre.listUsers();
            InitializeComponent();
        }
    }

我拍了部分代码from here

我认为它应该有效,但是当我 运行 我得到一个 System.WhosebugException

Edit1:我解决了溢出问题,但现在问题是"System.NullReferenceException",在dataGridView1.DataSource = Postgre.listUsers()。我更新了代码。

试一试:

dataGridView1.DataSource = reader;

我解决了,怎么办?我不知道,但我解决了:

Postgre.cs:

public static DataTable listUsers()
        {
            string sqlCommand = "SELECT name, senha FROM users";
            NpgsqlDataAdapter da = new NpgsqlDataAdapter(new NpgsqlCommand(sqlCommand, Connect()));

            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }

还有…… frmAdmin.cs:

private void listUsersGrid(object sender, EventArgs e)
        {
            dataGridView1.DataSource = Postgre.listUsers();
        }

"ListUsersGrid" 与 tabControl1 上的 "Enter" 事件一起执行。 我不知道我是如何解决它的,所以我不会做任何解释代码中每一件事的大文字。