private static int ExecuteMSSql(DbInfo db, string sqlPath)
{
Console.WriteLine("=================================================================");
Console.WriteLine("==========当前执行的mssql脚本:"+sqlPath);
Console.WriteLine("=================================================================");
if (db != null)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";//要执行的程序名称
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;//可能接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
p.StartInfo.CreateNoWindow = true;//不显示程序窗口
p.Start();
string Command = string.Format(@"sqlcmd -U{0} -P{1} -S{2} -d{3} -b -i {4}", db.User, db.Password, db.Server, db.Database, sqlPath);
p.StandardInput.WriteLine(Command); //向CMD窗口发送输入信息:
p.StandardInput.WriteLine("exit");
p.WaitForExit();
string sOutput = p.StandardOutput.ReadToEnd();//获取CMD窗口的输出信息,必须放在WaitForExit后面
Console.WriteLine(sOutput);//输出CMD执行的返回信息,
int rt = p.ExitCode;//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O
p.Close();
Console.WriteLine(sOutput);
if (rt == )
{
Console.WriteLine("=================================================================");
Console.WriteLine("==========返回值:-9,mysql脚本执行出错,没有返回执行成功结果");
Console.WriteLine("==========mysql脚本:"+sqlPath);
Console.WriteLine("=================================================================");
return -;//脚本错误
}
else
{ return ; }
}
else
{
Console.WriteLine("=================================================================");
Console.WriteLine("==========返回值:-8,mysql数据库连接读取失败,为Null");
Console.WriteLine("=================================================================");
return -;//数据库连接读取失败
}
}
private static int ExecuteMySql(DbInfo db, string sqlPath)
{
Console.WriteLine("=================================================================");
Console.WriteLine("==========当前执行的mysql脚本:"+sqlPath);
Console.WriteLine("=================================================================");
if (db != null)
{
Process myProcess = new Process();
myProcess.StartInfo = new ProcessStartInfo();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "cmd.exe";
string Command = string.Format("/c mysql.exe --host={0} -u{1} -p{2} --default-character-set=utf8 {3} -v -E < \"{4}\"", db.Server, db.User, db.Password, db.Database, sqlPath);
myProcess.StartInfo.Arguments = Command;
myProcess.Start();
myProcess.WaitForExit();
int rt = myProcess.ExitCode;//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O
if (rt == )
{
Console.WriteLine("=================================================================");
Console.WriteLine("==========返回值:-9,mssql脚本执行出错脚本出错");
Console.WriteLine("==========mssql脚本:"+sqlPath);
Console.WriteLine("=================================================================");
Console.WriteLine("");
return -;//脚本错误
}
else
{ return ; }
}
else
{
Console.WriteLine("=================================================================");
Console.WriteLine("==========返回值:-8,mssql数据库连接读取失败,为Null");
Console.WriteLine("=================================================================");
return -;//数据库连接读取失败
}
}