Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将完整数据集从另一个类传递到窗体?_C# - Fatal编程技术网

C# 如何将完整数据集从另一个类传递到窗体?

C# 如何将完整数据集从另一个类传递到窗体?,c#,C#,我希望在一个类中保持读取数据过程的独立性,并将该数据传递给一个表单,以作为数据源显示在DataGridView中。我可以在列表中逐行构建,然后将其传递给表单,但我想知道是否有一种简单的方法可以将完整的数据集作为参数传递给表单 以下是我构建数据集的代码: class DAL_ProjectMaster { // List<string> ProjectList = new List<string>(); OleDbConnection DBcon;

我希望在一个类中保持读取数据过程的独立性,并将该数据传递给一个表单,以作为数据源显示在DataGridView中。我可以在列表中逐行构建,然后将其传递给表单,但我想知道是否有一种简单的方法可以将完整的数据集作为参数传递给表单

以下是我构建数据集的代码:

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"];