SQLite C # и DataGridView - PullRequest
       5

SQLite C # и DataGridView

4 голосов
/ 27 апреля 2011

У меня проблема, если я пытаюсь заполнить сетку данных данными, если я вызываю функцию из другой формы. Все работает отлично, если я вызываю функцию в приватном void button1_Click в 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();

    }

Код в форме 1:

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

Я получил сообщение "Yuhuuuuuuuu", но представление данных пусто.

#

решаемые

#

В основной форме (Form1) я устанавливаю экземпляр

Form frm_Listusers = new form_Listusers(); 

но после этого:

form_Listusers frm_Listusers = new form_Listusers();

я могу получить доступ к своей функции frm.fill_grid ();

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

, когда вы запускаете следующий код:

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

Вы просто создаете экземпляр Form2, но показанная вам форма Form1.Тогда происходит то, что вы видите DataGridView формы Form1, которую вы не заполнили, потому что вы сделали это в Form2.

Если вы хотите добавить отображение добавления Form2 в Form1, добавьте только следующую строку в конце:

frm.Show();

Существует несколько способов отображения формы Form2 в зависимости от требуемой опции (показать только форму Form2, показать обе и т. Д.).

Об отображаемом сообщении:это потому что строка: MessageBox.Show ("Yuhuuuuuuu");Это событие запускается для всех приложений и не зависит от того, какая форма отображается сейчас.

0 голосов
/ 28 июля 2013

изменить это ` this .grid_userlist.DataSource = dt; grid_userlist .DataSource = dt; и создайте экземпляр из вашего второго класса формы в другой форме, а затем вызовите методы form2, например

 form2 frm2 = new fomr2;
 frm2.fill_grid()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...