Как залить дамп базы данных в базу MySql - C#
Формулировка задачи:
у меня есть дамп базы для работы программы, и надо чтобы при первом запуске он загрузил дамп на сервер, как это сделать? дамп в формате .sql, я сначало думал через реестр узнать путь к консоли mysql и загрузить дамп, а есть наверное лучше способ, вот хочу выслушать вашу версию?
если что у меня в программе в переменные забиты имя бд, логин, пароль, и хост.
Если можно на примере кода пожалуйста
Решение задачи: «Как залить дамп базы данных в базу MySql»
textual
Листинг программы
string connectionInfo =
string.Format(
"host={0};port='{1}';database='{2}';UserName='{3}';Password='{4}';Connection Timeout='{5}'",
config.Host, config.Port, config.DataBase, config.UserName, config.Password,
config.ConnectionTimeOut);
MySqlConnection connection = new MySqlConnection(connectionInfo);
connection.Open();
const string query =
"SELECT creature_template.entry, creature_template.speed_run, creature_template.speed_walk, creature_template.faction_A, creature_template.dynamicflags, creature_template.unit_flags, creature_template.rangeattacktime, creature_template.baseattacktime, creature_template.scale, creature_template.unit_class, creature_template.mindmg, creature_template.maxdmg, creature_template.attackpower, creature_template.rangedattackpower, creature_template.dmg_multiplier, creature_template.VehicleId, creature_template_sniff.entry, creature_template_sniff.speed_run, creature_template_sniff.speed_walk, creature_template_sniff.faction_A, creature_template_sniff.dynamicflags, creature_template_sniff.unit_flags, creature_template_sniff.rangeattacktime, creature_template_sniff.baseattacktime, creature_template_sniff.scale, creature_template_sniff.unit_class, creature_template_sniff.mindmg, creature_template_sniff.maxdmg, creature_template_sniff.attackpower, creature_template_sniff.rangedattackpower, creature_template_sniff.dmg_multiplier, creature_template_sniff.VehicleId FROM creature_template INNER JOIN creature_template_sniff ON creature_template.`entry` = creature_template_sniff.`entry` ORDER BY creature_template.entry";
_command = new MySqlCommand(query, connection);
using (MySqlDataReader db = _command.ExecuteReader())
{
while (db.Read())
{
CreatureTemplate creature = new CreatureTemplate();
CreatureTemplate sniffCreature = new CreatureTemplate();
creature.entry = db[0].ToUint32();
creature.speed_run = db[1].ToFloat();
creature.speed_walk = db[2].ToFloat();
creature.faction = db[3].ToUint32();
creature.dynamicFlags = db[4].ToUint32();
creature.unit_flag = db[5].ToUint32();
creature.rangeAttackTime = db[6].ToUint32();
creature.baseAttackTime = db[7].ToUint32();
creature.scale = db[8].ToFloat();
creature.unit_class = db[9].ToUint32();
creature.minDamage = db[10].ToFloat();
creature.maxDamage = db[11].ToFloat();
creature.attackPower = db[12].ToUint32();
creature.rangeAttackPower = db[13].ToUint32();
creature.dmgMultiplier = db[14].ToUint32();
creature.vehicleId = db[15].ToUInt16();
sniffCreature.entry = db[16].ToUint32();
sniffCreature.speed_run = db[17].ToFloat();
sniffCreature.speed_walk = db[18].ToFloat();
sniffCreature.faction = db[19].ToUint32();
sniffCreature.dynamicFlags = db[20].ToUint32();
sniffCreature.unit_flag = db[21].ToUint32();
sniffCreature.rangeAttackTime = db[22].ToUint32();
sniffCreature.baseAttackTime = db[23].ToUint32();
sniffCreature.scale = db[24].ToFloat();
sniffCreature.unit_class = db[25].ToUint32();
sniffCreature.minDamage = db[26].ToFloat();
sniffCreature.maxDamage = db[27].ToFloat();
sniffCreature.attackPower = db[28].ToUint32();
sniffCreature.rangeAttackPower = db[29].ToUint32();
sniffCreature.dmgMultiplier = db[30].ToUint32();
sniffCreature.vehicleId = db[31].ToUInt16();
_creatures.Add(creature);
_sniffCreatures.Add(sniffCreature);
}
}