如何从C#中的另一个类访问DataGridView?

如何从C#中的另一个类访问DataGridView?,c#,datagridview,C#,Datagridview,在我的程序中,有一个名为Book的Form8和类。在Form8中有一个DataGridView,我需要从Book类访问该DataGridView。有人能解释一下怎么做吗?我在书中做了以下事情 public void searchBook(string valueToSearch) { DynamicConnection con = new DynamicConnection(); con.mysqlconnection(); con.sq

在我的程序中,有一个名为Book的Form8和类。在Form8中有一个DataGridView,我需要从Book类访问该DataGridView。有人能解释一下怎么做吗?我在书中做了以下事情

public void searchBook(string valueToSearch)
    {

        DynamicConnection con = new DynamicConnection();
        con.mysqlconnection();
        con.sqlquery("select * from TBL_Book where CONCAT(ISBN_No,BookName,Author,Publisher,CategoryID,ReOrderLevel)like '%" + valueToSearch + "%'");
        con.dataread();
        con.datatable();
        con.table.Load(con.datareader);
        Form8 f8 = new Form8();
        f8.DGV.DataSource = con.table;
    }
并在表格8中列出以下内容

 public Form8()
    {
        InitializeComponent();
        DGV = dataGridView1;
    }
 public DataGridView DGV { get; set; }

如果我是您,我会从数据访问类(我相信是Book类)中删除与Form8变量相关的行。您可以从searchBook()返回一个DataTable并将其绑定到Form8中

public DataTable searchBook(string valueToSearch)
{

    DynamicConnection con = new DynamicConnection();
    con.mysqlconnection();
    con.sqlquery("select * from TBL_Book where CONCAT(ISBN_No,BookName,Author,Publisher,CategoryID,ReOrderLevel)like '%" + valueToSearch + "%'");
    con.dataread();
    con.datatable();
    con.table.Load(con.datareader);

    return con.table;
}


public Form8()
{
        InitializeComponent();
        dataGridView1;
}

void Search_Click(object sender, EventArgs e)
{
    Book b = new Book();
    dataGridView1.DataSource = b.searchBook("Text To Search");
}

如果我是您,我会从数据访问类(我相信是Book类)中删除与Form8变量相关的行。您可以从searchBook()返回一个DataTable并将其绑定到Form8中

public DataTable searchBook(string valueToSearch)
{

    DynamicConnection con = new DynamicConnection();
    con.mysqlconnection();
    con.sqlquery("select * from TBL_Book where CONCAT(ISBN_No,BookName,Author,Publisher,CategoryID,ReOrderLevel)like '%" + valueToSearch + "%'");
    con.dataread();
    con.datatable();
    con.table.Load(con.datareader);

    return con.table;
}


public Form8()
{
        InitializeComponent();
        dataGridView1;
}

void Search_Click(object sender, EventArgs e)
{
    Book b = new Book();
    dataGridView1.DataSource = b.searchBook("Text To Search");
}

看起来您已经在访问代码中的
DataGridView
。但是你忘了出示表格。或者您是否已经打开了一个表单,并且希望使用该表单而不是一个全新的表单?如果是这种情况,那么您需要将对所需表单的引用传递到该方法中,就像您已经将字符串传递到该方法中一样。“我需要从Book类访问该DataGridView”。不,你没有,绝对没有。让代码返回数据源并在UI代码中绑定。看起来您已经在访问代码中的
DataGridView
。但是你忘了出示表格。或者您是否已经打开了一个表单,并且希望使用该表单而不是一个全新的表单?如果是这种情况,那么您需要将对所需表单的引用传递到该方法中,就像您已经将字符串传递到该方法中一样。“我需要从Book类访问该DataGridView”。不,你没有,绝对没有。让代码返回数据源并绑定到UI代码中。