My C # Datagridview не показывает обновленные данные.
Это приложение Winform, c #, использующее SQLite.Когда моя форма открыта, она показывает данные так, как они выглядели до того, как я обновил столбец в двух отдельных строках, используя DB Browser для SQLite.В браузере БД, когда я выполняю этот SQL: SELECT * FROM SPEAKERS, я вижу 10 и 13 в столбце, который я изменил (раньше это были 0 и 2. Этот столбец определен как INTEGER.
Когда я открываю эту конкретную форму, она показывает данные в этом столбце как 0 и 2. Далее по сетке я вижу 12 и 13 и т. Д., Так что это не проблема форматирования в столбце. В этой форме у меня естьhCDataset, speakerBindingSource и speakerTableAdapter. Когда я щелкаю правой кнопкой мыши на speakerTableAdapter и выбираю «Предварительный просмотр данных», он показывает иерархию HCDataSet и таблицу Speakers под этим с выбранным объектом: HCDataSet.Speakers.Fill.Getdata (). Когда я нажимаю кнопку «Просмотр», данные выглядят точно так же, как на моей сетке данных.
Поверьте, я перезагрузился, закрыл все, вернулся в браузер БД для SQLite и каждый раз, когда он открываетсяс 10 и 13 в этих столбцах, но он никогда не отображается в сетке на моей форме с этими новыми обновленными значениями в этом столбце.
Я думал, что смогу сделать скриншоты, но, видимо, нет.Я могу вставить свои скриншоты в Paint, и они выглядят хорошо, но, очевидно, когда я копирую оттуда и нажимаю CTRL-G в этом редакторе, они не отображаются в этом документе.Может быть, у меня недостаточно разрешений или что-то в этом роде.
Я читал в других сообщениях, что у людей возникают проблемы с обновлением из сетки и они не видят обновлений в базе данных.У меня вроде как проблема противоположная, когда я обновляю базу данных, но по какой-то причине сетка не показывает это.
Я добавил код, в котором я показываю вам мои методы подключения и код для запроса к базе данных.Когда я добираюсь до 3-го ряда, он отображает правильное «10» из столбца RANK !!
public static SQLiteCommand GetSqliteCommand()
{
SQLiteConnection conn = GetSqliteConnection();
return conn.CreateCommand();
}
public static SQLiteConnection GetSqliteConnection()
{
string dbPath = Path.Combine(Environment.CurrentDirectory, "hc.db");
string connectionString = string.Format("Data Source={0};foreign keys=true", dbPath);
SQLiteConnection conn = new SQLiteConnection(connectionString);
conn.Open();
return conn;
}
//Now my code snippet to read the database and this DOES return the updated column!
GetLastUpdateSql = "SELECT * FROM SPEAKERS ORDER BY ID";
cmd.CommandText = GetLastUpdateSql;
cmd.ExecuteNonQuery();
SQLiteDataReader reader;
reader = cmd.ExecuteReader();
int int1, int2, int3, int4, int5;
string fn, ln;
while (reader.Read())
{
fn = reader["FIRST_NAME"].ToString();
ln = reader["LAST_NAME"].ToString();
int1 = Convert.ToInt32(reader["ID"]);
int2 = Convert.ToInt32(reader["TYPE"]);
int3 = Convert.ToInt32(reader["WARD"]);
int4 = Convert.ToInt32(reader["RANK"]);
int5 = Convert.ToInt32(reader["ACTIVE"]);
}