Автоматическое обновление данных из базы данных при каждом открытии этой формы - PullRequest
0 голосов
/ 16 октября 2019

При добавлении создания GUI в VS2019 вы можете добавить TableDataAdapter, который добавит / покажет Datagrid, показывающий данные этих таблиц. с этим кодом в конструкторе this.data1TableAdapter.Fill(this.test1DataSet.data1);

Но проблема в том, что в случае каких-либо изменений в базе данных / таблице они не будут отражены в этой таблице данных. Я пытался использовать data1DataGridView.Update(); и data1DataGridView.Refresh();, но это буквально ничего не делает. чем я добавил свою строку подключения к базе данных в качестве источника данных. (Я знаю, что это глупая попытка, но я все равно попробовал.), которая, очевидно, не сработала и стерла все мои (не обновленные) данные, отображаемые в сетке данных.

Таквот мой вопрос, есть ли простой способ обновить это автоматически каждый раз, когда происходит изменение в базе данных / таблице?

Отказ от ответственности: у меня это работает, но по-другому. Я тоже поделюсь этим.

System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Documents\test1.mdb";

OleDbCommand comm = new OleDbCommand("SELECT * FROM data1;", conn);

conn.Open();
OleDbDataAdapter dap = new OleDbDataAdapter(comm);
DataTable ds = new DataTable();

dap.Fill(ds);
data1DataGridView.DataSource = ds;
comm.ExecuteNonQuery();

conn.Close();

1 Ответ

0 голосов
/ 16 октября 2019

По моему мнению, есть две вещи, которые вы можете сделать.

1 - создать кнопку Обновить и при этой кнопке вызвать пользовательскую функцию refresh

public void Refresh(object sender, EventArgs e)
{

    System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
    conn.ConnectionString = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Documents\test1.mdb";
    OleDbCommand comm = new OleDbCommand("SELECT * FROM data1;", conn);
    conn.Open();
    OleDbDataAdapter dap = new OleDbDataAdapter(comm);
    DataTable ds = new DataTable();
    dap.Fill(ds);
    data1DataGridView.DataSource = ds;
    comm.ExecuteNonQuery();
    conn.Close();

}

, эта функция привязывает данные к вашемуНовая таблица каждый раз, когда вы нажимаете

2 - вы можете использовать таймер для обновления сетки данных. Я вставляю ссылку , как использовать управление таймером в c # , вы можете перейти по нему и просто вставить приведенное выше определение функции обновления в управление таймером. он обновит вашу сетку данных в соответствии с указанным интервалом времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...