SQLite C#和DataGridView

前端之家收集整理的这篇文章主要介绍了SQLite C#和DataGridView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我尝试用数据填充datagridview,如果我从另一个表单调用函数,我有问题.如果我在私有中调用函数,那么一切都很完美按钮1_在form2中单击datagridview,但如果我从另一个表单调用函数(Form1),则datagridview为空.

Form2中的代码,其中是datagridview

public void fill_grid() {
        MessageBox.Show("Yuhuuuuuuu");
        form_Listusers form = new form_Listusers();
        sqliteConnection cn = new sqliteConnection(Form1.dbQuery); 
        cn.Open();
        string sql;
        sql = "SELECT users_id,name,username,place FROM users";
        sqliteCommand cmd = new sqliteCommand(sql,cn);
        sqliteDataAdapter da = new sqliteDataAdapter(cmd);
        DataSet ds = new DataSet();
        try
        {
            da.Fill(ds);
            DataTable dt = ds.Tables[0];
            this.grid_userlist.DataSource = dt;

        }
        catch (Exception ex)
        {
            MessageBox.Show("Errrrrrrror");
        }
        cn.Close();

    }

Form1中的代码

Form2 frm = new Form2();
       frm.fill_grid();

我收到消息“Yuhuuuuuuuu”但datagridview是空的.

#

解决

#

在主窗体(Form1)中我设置实例

Form frm_Listusers = new form_Listusers();

但在此之后:

form_Listusers frm_Listusers = new form_Listusers();

我可以访问我的函数frm.fill_grid();

解决方法

当您运行以下代码时:

Form2 frm = new Form2();
frm.fill_grid();

您只需创建Form2的实例,但显示的窗体是Form1.
然后会发生什么,你看到Form1的DataGridView没有填充它,因为你在Form2中做了这个.

如果要将Form2的显示添加到Form1,请在末尾添加以下行:

frm.Show();

有几种方法可以显示Form2,具体取决于您想要的选项(仅显示Form2,同时显示两者等).

关于你看到的消息,这是因为行:MessageBox.Show(“Yuhuuuuuuu”);此事件将触发所有应用程序,并且不依赖于现在显示的表单.

猜你在找的Sqlite相关文章