Member 13199484 Ответов: 1

Связать таблицы SQLite в список


всем привет,
как создать список, хранящий данные таблицы sqlite и имеющий тот же тип столбцов.
база данных его не существует я создаю после запуска приложения, так что приложение будет проверять, существует ли база данных или нет, то я должен хранить все табличные данные в списке, чтобы сделать некоторые функции и уравнения там, я создаю класс с тем же типом данных столбцов таблицы базы данных.
       // Here i want to declare a list that has same columns's type of Database table
                var Userlist = new list<user>; // users is a class i create 
                SQLiteConnection m_dbConnection;
                m_dbConnection = new SQLiteConnection("Data Source=DB.sqlite;Version=3;");
                m_dbConnection.Open();
                string sql = "select * from Users";
                SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
                SQLiteDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    userlist.Add(reader);
                    // here i got error: can't convert from sqlite table to list
                    // i have (datetime) and (string) and (int) columns in the table

                }
                m_dbConnection.dispse();
// i want to be able to do the below code after database connection close
               foreach( var row in userlist)
                {
                  if(row.column's name = 1)
                    { // do something
                    }
                    
                }


Что я уже пробовал:

в то время как (читатель.читать())
{
файл userlist.Добавить(читатель);

}

1 Ответов

Рейтинг:
7

Thomas.D Williams

Если вы посмотрите на SQLiteDataReader класс docs, он имеет такие методы, как:
GetString(index)
GetInt32(index)

Поэтому вам нужно создать нового пользователя например

UserList.Add(new User()
{
    Name = reader.GetString(0),
    LastName = reader.GetString(1),
    // etc... (0, 1 refer to the column index)
});

Если вы только начинаете с C#, могу ли я порекомендовать вам взглянуть на ядро Entity Framework, оно может упростить операции с базами данных.


Member 13199484

спасибо, я постараюсь его.
можно ли использовать entity framework, пока у меня нет существующей базы данных?
поскольку у меня нет физической базы данных, которую я создаю после установки приложения на клиентской машине

Thomas.D Williams

Entity Framework имеет инструмент "Code First Migrations", который позволяет создавать файлы кода миграции из контекста базы данных (контекст-это просто класс EF, используемый для взаимодействия с базой данных).

Вы можете использовать:
DbContext можно.Базы данных.Мигрировать();
чтобы убедиться, что все таблицы созданы.

Возможно, вы захотите просмотреть их обзор.
https://docs.microsoft.com/en-us/ef/core/

Member 13199484

решетка, это действительно полезно, спасибо.
угрюмый, я еще почитаю об этом.