Все значения, взятые из моей базы данных sqlite, которые добавляются в мои списки, являются просто "sqlitedatareader"
Я пытаюсь создать скрипт, который берет всю информацию из базы данных SQLite и сохраняет ее в списках, которые хранятся внутри словарей. Я могу добавлять в свои списки, хранящиеся внутри словарей, однако все мои сохраненные значения просто отображаются как " System.Data.SQLite.SQLiteDataReader" вместо фактических значений внутри строк.
Переменные:
tableNames = список имен всех таблиц в базе данных
allTables = словарь всех таблиц, в которых я буду хранить данные в виде списков
table = строка, представляющая имя конкретной таблицы
Ссылка на картинку кода и результаты[^]
Любая помощь или указатели будут очень признательны!
Что я уже пробовал:
public static List<string> getSQLiteData(string liteConString, IList<string> tableNames) { SQLiteConnection liteCon = new SQLiteConnection(liteConString); liteCon.Open(); /// Creates a dictionary where the "Key" is the name of the table /// and the "Values" are lists that represent the values in each table IDictionary<string, List<string>> allTables = new Dictionary<string, List<string>>(); foreach (string table in tableNames) { string selectQuery = "SELECT * FROM " + table; allTables.Add(table, new List<string>()); SQLiteCommand cmd = new SQLiteCommand(selectQuery, liteCon); SQLiteDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { allTables[table].Add(reader.ToString()); } reader.Close(); } return null; }
Я не совсем уверен, что не так с этим кусочком кода и почему он не захватывает фактическую информацию. Я очень новичок в C# и SQL, поэтому, пожалуйста, простите любые вопиющие ошибки.
EDIT: теперь я попробовал SQLiteDataAdapter вместо SQLiteDataReader и хранить результаты в таблицах данных вместо списков. Однако теперь я сталкиваюсь с ошибкой, когда DataTable не имеет фактических значений таблиц SQLite, а скорее имеет значения своих "свойств". Это и есть код:
IDictionary<string, DataTable> allTables = new Dictionary<string, DataTable>(); foreach (string table in tableNames) { string selectQuery = "SELECT * FROM " + table; allTables.Add(table, new DataTable()); SQLiteCommand cmd = new SQLiteCommand(selectQuery, liteCon); SQLiteDataAdapter sqliteDAP = new SQLiteDataAdapter(cmd); sqliteDAP.Fill(allTables[table]); }
Ссылка на результаты этого кода[^]
stevenlam505
Вот еще одна картина того, как на самом деле выглядит таблица: https://imgur.com/a/BkMoLG4