您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,了解在第1行'source D://sqldatabase.sql‘附近使用的正确语法。
MySqlCommand comm = conn.CreateCommand();
comm.CommandText = "source D://sqldatabase.sql";
try {
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
} catch (MySqlException a) {
MessageBox.Show(a.Message);
}发布于 2017-02-27 10:01:57
"source“是mysql命令行工具的一个命令,服务器根本无法识别它。
因此,当使用mysql.exe (命令行客户端)时,它知道如何处理它,而mysql服务器不知道。
而C#也不知道。您必须将该文件读取到您的程序中,并手动逐个执行其中的命令。
评论中提到的另一种方法是从程序中运行mysql.exe:
using System.Diagnostics;
Process mysql = new Process( );
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "Path\\To\\mysql.exe";
psi.Arguments = " -u[username] -p[password] [database] < D:\\sqldatabase.sql";
psi.UseShellExecute = false;
P.StartInfo = psi;
P.Start();请注意:
在命令行上使用口令可能不安全
https://stackoverflow.com/questions/42476653
复制相似问题