BitrixAQA.General.SQL.mysqlQueryArray C# (CSharp) Method

mysqlQueryArray() public static method

Возвращает результат sql запроса в виде двухмерного строкового массива
public static mysqlQueryArray ( string edition, string DBType, string query ) : ].string[
edition string Редакция
DBType string Тип базы
query string SQL запрос
return ].string[
        public static string[,] mysqlQueryArray(string edition, string DBType, string query)
        {
            string ConnectionString = null;
            ConnectionString = "SERVER=" + Options.GetOption("/Options/ConnectionString/mysql") + ";" +
                       "port=" + Options.GetOption("/Options/ConnectionString/mysql_port") + ";" +
                       "DATABASE=" + GetDBname(edition, DBType) + ";" +
                       "UID=root;" +
                       "PASSWORD=;";

            MySqlConnection connection = new MySqlConnection(ConnectionString);
            //Открываем sql соединение
            connection.Open();
            //Читаем результат выпонения запроса в reader
            MySqlCommand command = new MySqlCommand(query, connection);
            MySqlDataReader dataReader = command.ExecuteReader();
            //Тут мы читаем ридер, чтобы узнать его глубину. Иначе никак.
            int i = 0;
            while (dataReader.Read())
                i++;
            //И полученную глубину ридера используем для задания размерности массива при его объявлении
            string[,] valuesList = new string[i, dataReader.FieldCount];
            //Закрываем ридер
            dataReader.Close();

            //Повторно считываем результат запроса, но теперь заносим его в проинициилизированый массив
            dataReader = command.ExecuteReader();
            i = 0;
            while (dataReader.Read())
            {
                for (int j = 0; j < dataReader.FieldCount; j++)
                    valuesList[i, j] = dataReader[j].ToString();
                i++;
            }
            //Закрываем ридер и соединение
            dataReader.Close();
            connection.Close();
            //Возвращаем наш массив
            return valuesList;
        }