1 private static int ExecuteMSSql(DbInfo db, string sqlPath)
2 {
3 Console.WriteLine("=================================================================");
4 Console.WriteLine("==========当前执行的mssql脚本:"+sqlPath);
5 Console.WriteLine("=================================================================");
6 if (db != null)
7 {
8 System.Diagnostics.Process p = new System.Diagnostics.Process();
9 p.StartInfo.FileName = "cmd.exe";//要执行的程序名称
10 p.StartInfo.UseShellExecute = false;
11 p.StartInfo.RedirectStandardInput = true;//可能接受来自调用程序的输入信息
12 p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
13 p.StartInfo.CreateNoWindow = true;//不显示程序窗口
14 p.Start();
15 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);
16 p.StandardInput.WriteLine(Command); //向CMD窗口发送输入信息:
17 p.StandardInput.WriteLine("exit");
18 p.WaitForExit();
19 string sOutput = p.StandardOutput.ReadToEnd();//获取CMD窗口的输出信息,必须放在WaitForExit后面
20 Console.WriteLine(sOutput);//输出CMD执行的返回信息,
21 int rt = p.ExitCode;//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O
22 p.Close();
23 Console.WriteLine(sOutput);
24 if (rt == 1)
25 {
26 Console.WriteLine("=================================================================");
27 Console.WriteLine("==========返回值:-9,mysql脚本执行出错,没有返回执行成功结果");
28 Console.WriteLine("==========mysql脚本:"+sqlPath);
29 Console.WriteLine("=================================================================");
30 return -9;//脚本错误
31 }
32 else
33 { return 0; }
34 }
35 else
36 {
37 Console.WriteLine("=================================================================");
38 Console.WriteLine("==========返回值:-8,mysql数据库连接读取失败,为Null");
39 Console.WriteLine("=================================================================");
40 return -8;//数据库连接读取失败
41 }
42
43 }
44
45 private static int ExecuteMySql(DbInfo db, string sqlPath)
46 {
47 Console.WriteLine("=================================================================");
48 Console.WriteLine("==========当前执行的mysql脚本:"+sqlPath);
49 Console.WriteLine("=================================================================");
50 if (db != null)
51 {
69 Process myProcess = new Process();
70 myProcess.StartInfo = new ProcessStartInfo();
72 myProcess.StartInfo.UseShellExecute = false;
73 myProcess.StartInfo.FileName = "cmd.exe";
74 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);
75 myProcess.StartInfo.Arguments = Command;
76 myProcess.Start();
77 myProcess.WaitForExit();
78 int rt = myProcess.ExitCode;//CMD返回值,成功为0失败为1 必须放在WaitForExit后面.在执行的Command里面必然加上-b,否则一直返回O
79 if (rt == 1)
80 {
81 Console.WriteLine("=================================================================");
82 Console.WriteLine("==========返回值:-9,mssql脚本执行出错脚本出错");
83 Console.WriteLine("==========mssql脚本:"+sqlPath);
84 Console.WriteLine("=================================================================");
85 Console.WriteLine("");
86 return -9;//脚本错误
87 }
88 else
89 { return 0; }
90 }
91 else
92 {
93 Console.WriteLine("=================================================================");
94 Console.WriteLine("==========返回值:-8,mssql数据库连接读取失败,为Null");
95 Console.WriteLine("=================================================================");
96 return -8;//数据库连接读取失败
97 }
98 }