首页 > 解决方案 > 如何在 C# 中创建一个填充两个 DataGridView 的函数

问题描述

我正在创建一个小型数据库应用程序,我必须在其中使用流动函数填充名为“DG1”和“DG2”的两个 DataGridView:

private SQLiteDataAdapter DB;
    private DataSet DS = new DataSet();
    private DataTable DT = new DataTable();

    public void LoadData(DataGridView Grid, String fields, String table)
    {
        SetConnection();
        sql_con.Open();
        sql_cmd = sql_con.CreateCommand();
        string CommandText = "select " + fields + " from " + table;
        DB = new SQLiteDataAdapter(CommandText, sql_con);
        DS.Reset();
        DB.Fill(DS);
        DT = DS.Tables[0];
        Grid.DataSource = DT;
        sql_con.Close();
    }

在主窗体中调用它之后

LoadData(DG1, "*", "CLIENTS");

第一个网格会填满,但是当我调用第二种方法时

LoadData(DG2, "*", "COURSES");

第一个客户端 DataGridView 为空,第二个 DataGridView 填充了正确的信息

标签: c#databasedatagridview

解决方案


我犯了多么愚蠢的错误!我所要做的就是删除 DataSet 和 DataTable 的声明并将其放在函数中,所有冲突都消失了,谢谢(@JohnG,@TaW 以及每个试图提供帮助的成员)

public void LoadData(DataGridView Grid, String fields)
    {
        SetConnection();
        sql_con.Open();
        sql_cmd = sql_con.CreateCommand();
        string CommandText = "select " + fields + " from " + table;
        DB = new SQLiteDataAdapter(CommandText, sql_con);
        DataSet DS = new DataSet();
        DataTable DT = new DataTable();
        DB.Fill(DS);
        DT = DS.Tables[0];
        Grid.DataSource = DT;
        sql_con.Close();
    }

推荐阅读