Edward Sheriff Curtis
Edward Sheriff Curtis

Reputation: 497

How to assign datareader value string array

I am getting these records from database MySql version 8.0.17

+-------------------------+
| TABLE_NAME              |
+-------------------------+
| t_contents_s300_1_2021  |
| t_contents_s34d_1_2021  |
| t_contents_s34g_1_2021  |
| t_contents_s3sv_1_2021  |
+-------------------------+

and I used MySqlDataReader to read those records as follows

MySqlDataReader reader = cmd.ExecuteReader();    
// in reader, I have records which comes from database.

while(reader.Read())    
{
   string [] arpp_pro = new string[] {reader["TABLE_NAME"].ToString()};
}

everything works fine...

But I need assigning these values of string [] arpp_pro in array for execute single query INSERT INTO on new table for each values from TABLE_NAME

How to solve this problem.

How can I get all records in array from TABLE_NAME?

Thanks in advance for any help

Upvotes: 1

Views: 1621

Answers (1)

ProgrammingLlama
ProgrammingLlama

Reputation: 38757

I think you want to construct a list:

MySqlDataReader reader = cmd.ExecuteReader();    

List<string> arpp_pro = new List<string>(); // define a list outside of the loop
while(reader.Read())    
{
   // for each row from the database, add the retrieved table name to the list
   arpp_pro.Add(reader["TABLE_NAME"].ToString()); 
}

// code to dos something with arpp_pro here.

I also recommend using the using keyword with your reader to ensure that it's closed/disposed when you are done with it. Example:

List<string> arpp_pro = new List<string>(); // define a list outside of the loop
using(MySqlDataReader reader = cmd.ExecuteReader())
{
    while(reader.Read())    
    {
       // for each row from the database, add the retrieved table name to the list
       arpp_pro.Add(reader["TABLE_NAME"].ToString());
    }
}

If you really need it as an array, you can call string[] arpp_pro_array = arpp_pro.ToArray(); to convert the list to an array. You will need using System.Linq; at the top of your code file for this to work, as ToArray is a LINQ extension method.

Upvotes: 2

Related Questions