У меня есть база данных sqlite3 с несколькими таблицами. Одно из них имеет два поля: s_id и user_id, первое целочисленное, второе - целочисленный первичный ключ. Я могу просматривать содержимое таблицы с помощью браузера данных SQLite, и в таблице есть две строки.
Значения user_id - 1 и 2.
Однако значения s_id являются строками (например, «user1» и «user2»), и браузер данных sqlite показывает эти строки.
Я пытаюсь получить информацию с помощью System.Data.SQLite и следующего кода на C #:
using (SQLiteConnection connection = new SQLiteConnection(string.Format(@"Data Source={0};Legacy Format=True;", path)))
{
connection.Open();
using (SQLiteCommand command = new SQLiteCommand("SELECT * FROM users", connection))
{
using (SQLiteDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
string user = reader["s_id"].ToString();
}
}
}
}
Я поискал в Интернете и обнаружил, что sqlite может хранить строковые данные в полях типа int. Но я не могу прочитать эти строки с помощью C #. Результат всегда «0». Даже если я разверну читатель в Watch, пока не смогу видеть объекты, значение там тоже будет 0. (Второй объект, соответствующий user_id, имеет значение, как и должно быть, 1 или 2).
Вы знаете, как это строковое значение в целочисленном поле можно получить в C #?
Спасибо.