Я использую приведенный ниже сценарий для автоматической загрузки базы данных на сервер XAMPP при установке exe-файла, но, к сожалению, этого не происходит. Я помещаю файл ".SQL" в ту же папку, где мой exe-файл находится вручнуюи я использую метод click Once, чтобы создать exe-файл. Пожалуйста, проверьте приведенный ниже код и направьте меня соответственно, где я ошибаюсь
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void MainWindow_load(object sender,EventArgs e)
{
if (!checkifdbexist())
{
generatedatabase();
}
}
private bool checkifdbexist()
{
String conn = "datasource=127.0.0.1;port=3306;username=root;password=;database=demon;";
MySqlConnection con = new MySqlConnection(conn);
try
{
con.Open();
return true;
}
catch
{
return false;
}
}
private void generatedatabase()
{
List<string> cmds = new List<string>();
if (File.Exists(System.Windows.Forms.Application.StartupPath + "\\demo.sql"))
{
TextReader tr = new StreamReader(System.Windows.Forms.Application.StartupPath + "\\demo.sql");
String line = "";
string cmd = "";
while ((line = tr.ReadLine()) != null)
{
if (line.Trim().ToUpper() == "GO")
{
cmds.Add(cmd);
cmd = "";
}
else
{
cmd += line + "\r\n";
}
}
if (cmd.Length > 0)
{
cmds.Add(cmd);
cmd = "";
}
tr.Close();
}
if (cmds.Count > 0)
{
MySqlCommand comm = new MySqlCommand();
comm.Connection = new MySqlConnection("datasource=127.0.0.1;port=3306;username=root;password=;Initial Catalog=MASTER;");
comm.CommandType = System.Data.CommandType.Text;
comm.Connection.Open();
for (int i = 0; i < cmds.Count; i++)
{
comm.CommandText = cmds[i];
comm.ExecuteNonQuery();
}
}
}