我正在创建一个小型数据库应用程序,必须在其中填充两个DataGridView 使用以下流动函数分别命名为“ DG1”和“ DG2”:
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填充了正确的信息
答案 0 :(得分:0)
我犯了什么愚蠢的错误!我要做的就是删除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();
}