Problem with string array?

I have a problem with this code, because it gives me following error message
Object reference not set to an instance of an object when I use the line
values[countValues] = reader2.GetString(“textinfo”); in the code below

Can someone help me?

public static string[] values;
 int countValues = 0;
 using (var connection = new MySqlConnection(connString))
                {
                    connection.Open();
                    string query = "select * from showvalues where idvalue = '" + idStatus + "'";
                    using (var command2 = new MySqlCommand(query, connection))
                    {
                        using (var reader2 = command2.ExecuteReader())
                        {
                            while (reader2.Read())
                            {
                          
                               listBoxMeasurement.Items.Add(reader2.GetString("textinfo"));
                               values[countValues] = reader2.GetString("textinfo");
                               countValues++;
                            }
                           countValues = 0;
                           connection.Close();
                         } 
                    }
                }

Hi

Quick answer you are using an uninitialized array of string.
You need to resize it to accept any new value.

Check Array.Resize()

Likely the reason why you get this error.

Can you share the structure of your table?

Cheers.

EDIT

Works perfectly

DB Structure and data

image

Main

var connectionString = MySqlCustomInfos.ConnectionString;

System.Console.WriteLine("\n\n=====\n1\n=====\n");
Ken76MySqlProblem.Method(connectionString, 1);
System.Console.WriteLine("\n\n=====\n2\n=====\n");
Ken76MySqlProblem.Method(connectionString, 2);
using MySql.Data.MySqlClient;

class Ken76MySqlProblem
{
    public static void Method(string connString, int idStatus)
    {
        string[] values = new string[0];
        int countValues = 0;


        using (var connection = new MySqlConnection(connString))
        {
            connection.Open();
            string query = "SELECT * FROM showvalues WHERE idstatus = '" + idStatus + "'";

            using (var command2 = new MySqlCommand(query, connection))
            {
                using (var reader2 = command2.ExecuteReader())
                {
                    while (reader2.Read())
                    {
                        string result = reader2.GetString("textinfo");
                        // listBoxMeasurement.Items.Add(reader2.GetString("textinfo"));
                        Array.Resize(ref values, countValues + 1);
                        values[countValues] = reader2.GetString("textinfo");
                        countValues++;
                        System.Console.WriteLine($"{countValues} => {result}");
                    }
                    countValues = 0;
                    connection.Close();
                }
            }
        }

        System.Console.WriteLine($"\n\n=====\nIterating Array\n=====\n");
        Array.ForEach(values, (item) =>
        {
            System.Console.WriteLine($"Item => {item}");
        });
    }
}

Output

Demo Repo