Как сохранить результат типа целочисленный массив из базы данных в массив в C#? - PullRequest
1 голос
/ 20 апреля 2020

Я использую postgresql в качестве базы данных, и у меня есть столбец под названием foodsIds, его тип - массив целых чисел.

Я делаю следующий запрос SQL.

        // Specify connection
        NpgsqlConnection conn = new NpgsqlConnection(
            "Server=127.0.0.1;" +
            "User Id=username;" +
            "Password=password;" +
            "Database=db;" +
            "Port=3500");
        conn.Open();

        // Define a query
        NpgsqlCommand cmd = new NpgsqlCommand($"SELECT catsids FROM restaurants WHERE id = {Properties.Settings.Default.ResId.ToString()}", conn);

        // Execute a query
        NpgsqlDataReader dr = cmd.ExecuteReader();

        if (dr.Read())
        {

            /*

           I WANT TO INSERT CODE HERE

            */

        }

        // Close connection
        conn.Close();

теперь я знаю, что результатом является массив целых чисел, и я хочу сохранить его в массиве, чтобы я мог использовать значения в нем.

есть идеи, как это сделать ??

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Существует прямое отображение из массива PG в массив C#. Вы можете просто привести возвращенный объект к массиву

        int[] result;

        if (dr.Read())
        {
            result = (int[])dr.GetValue(0);
        }
1 голос
/ 20 апреля 2020

Попробуйте что-то вроде этого:

List<int> myList = new List<int>();
while(dr.Read())
    {

        int newInt = int.Parse(dr["catsids"].ToString());
        //push to list or array here e.g. 
        myList.Add(newInt);

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