为什么不能将DataSource与DataTable绑定?

时间:2017-08-19 13:07:24

标签: c# datagridview

我有代码,从DataTable填充Datagridview:

public void dataGridClientsLoad()
        {
            DataTable dt = new DataTable();

            dt = serviceSqlite.select(new Pacients());

            dataGridView1.DataSource = dt;

            //dataGridView2.Update();

            //dataGridView2.Refresh();

            label1.Text = "Все" + updateCountRows();

        }

dt对象中,我得到了填充的行和列(参见图1,图2)。

但结果是,在调用dataGridClientsLoad()之后我有空的DataGridView,为什么? pic.1

pic.2

ServiceSqlite 是:

class SqliteService : ArraySelect
    {
        public SQLiteDatabase driver;

        public SqliteService() {

            SqliteConnection(new SQLiteDatabase());
        }

        public void SqliteConnection(SQLiteDatabase driver)
        {
            this.driver = driver;
        }

        public DataTable select(ISqlite select)
        {

            return select.select(driver);
        }
}

1 个答案:

答案 0 :(得分:2)

在将数据源设置为网格视图后,您需要使用DataBind() -

  

dataGridView1.DataBind();

将数据源绑定到GridView控件。此方法无法继承。

使用DataBind()方法将数据从数据源绑定到GridView控件。此方法解析control.refer MSDN

的活动模板中的所有数据绑定表达式
public void dataGridClientsLoad()
            {
                DataTable dt = new DataTable();

                dt = serviceSqlite.select(new Pacients());

                dataGridView1.DataSource = dt;
                dataGridView1.DataBind();//This require to bind data table.  

                label1.Text = "Все" + updateCountRows();

            }