C# 如何将完整数据集从另一个类传递到窗体?
我希望在一个类中保持读取数据过程的独立性,并将该数据传递给一个表单,以作为数据源显示在DataGridView中。我可以在列表中逐行构建,然后将其传递给表单,但我想知道是否有一种简单的方法可以将完整的数据集作为参数传递给表单 以下是我构建数据集的代码:C# 如何将完整数据集从另一个类传递到窗体?,c#,C#,我希望在一个类中保持读取数据过程的独立性,并将该数据传递给一个表单,以作为数据源显示在DataGridView中。我可以在列表中逐行构建,然后将其传递给表单,但我想知道是否有一种简单的方法可以将完整的数据集作为参数传递给表单 以下是我构建数据集的代码: class DAL_ProjectMaster { // List<string> ProjectList = new List<string>(); OleDbConnection DBcon;
class DAL_ProjectMaster
{
// List<string> ProjectList = new List<string>();
OleDbConnection DBcon;
OleDbCommand DBcmd;
OleDbDataAdapter DBadp;
ConString constr = new ConString();
public void GetProjectMaster()
{
string connectString = constr.GetConString();
DBcon = new OleDbConnection(connectString);
DBcmd = new OleDbCommand("select * from ProjectMaster", DBcon);
DBcon.Open();
DBadp = new OleDbDataAdapter(DBcmd);
DataSet ds = new DataSet();
DBadp.Fill(ds);
}
}
}
更改
GetProjectMaster
以返回DataSet
public DataSet GetProjectMaster()
{
DataSet ds = new DataSet();
string connectString = constr.GetConString();
using( var con = new OleDbConnection(connectString))
using( var cmd = new OleDbCommand("select * from ProjectMaster", con))
{
con.Open();
using(var adp = new OleDbDataAdapter(cmd))
{
adp.Fill(ds);
}
}
return ds;
}
现在您可以按如下方式调用上述方法
DAL_ProjectMaster dal = new DAL_ProjectMaster();
dataGridView1.DataSource = dal.GetProjectMaster().Tables[0];
您可以使用会话
//分配
DataSet ds = new DataSet();
Session.Add("Name", ds);
// for retrieve
ds = (DataSet)Session["Name"];
DataSet ds = new DataSet();
Session.Add("Name", ds);
// for retrieve
ds = (DataSet)Session["Name"];