У меня проблема.C# MySql DataTable заполняет массив
Я хочу написать программу для вставки некоторого материала в базу данных Mysql. В первый раз я делаю для каждого столбца в базе данных собственную строку и использовал это для создания SQL-запроса. Но в большинстве таблиц я получил более 100 столбцов. И я не хочу делать 100 переменных. Поэтому я решил сделать это с помощью данных и массива. Но теперь я не знаю, как заполнить имена столбцов в массиве. Вот часть кода, который это делает.
private void button_npccreate_click(object sender, EventArgs e)
{
//Umwandlung von C# Variable in Mysql Variable
MySqlCommand command = new MySqlCommand();
command.Parameters.AddWithValue("@server", server);
command.Parameters.AddWithValue("@port", port);
command.Parameters.AddWithValue("@user", user);
command.Parameters.AddWithValue("@password", mysqlpassword);
command.Parameters.AddWithValue("@world", db_world);
//Connection zu Mysql Server
string myConnectionString = "Server=" + server + ";Port=" + port + ";Database=" + db_world + ";Uid=" + user + ";Pwd=" + mysqlpassword + ";";
MySqlConnection connection = new MySqlConnection(myConnectionString);
MySqlCommand cmd;
cmd = connection.CreateCommand();
string readquery = "SELECT * FROM quest_template;";
MySqlDataAdapter read_adapter = new MySqlDataAdapter(readquery, connection);
DataTable tableRead = new DataTable();
connection.Open();
read_adapter.Fill(tableRead);
connection.Close();
int columns = 0;
if(tableRead.Rows.Count > 0)
{
foreach(DataColumn dc in tableRead.Columns)
{
columns++;
}
}
else
{
MessageBox.Show("The table is empty. Please check your Database.");
}
string [] columns_array = new string[columns];
foreach (DataColumn dc in tableRead.Columns)
{
// Here i must fill the Array i think. But i dont know how to do this.
}
}
Если вы используете метод Fill для заполнения DataTable, а затем работать с этим DataTable вместо работы с массивом. Таблицы данных намного мощнее. Если вы все еще хотите использовать массивы, вам нужно создать массив с размером набора результатов для строк и столько же размеров, сколько и в datatable. Также в вашем коде вам нужен вложенный цикл. Один для строк и один для столбцов. – NoChance