在C#中执行包含SOURCE调用的SQL脚本

时间:2018-10-26 16:11:09

标签: c# mysql sql syntax

所以我正在尝试从SQL应用中执行以下C#代码

SOURCE Install/Create_Initial_Index
SOURCE Install/Create_Table_Pk

使用以下C#代码

public static void installScripts(MySqlConnection conn, String installScriptPath)
{
    MySqlScript script = new MySqlScript(conn, File.ReadAllText(installScriptPath));
    script.Execute();
}

但是,它引发了SOURCE关键字的语法错误

  

错误代码:1064。您的SQL语法有错误;检查   与您的MySQL服务器版本相对应的手册   在'SOURCE Install / Create_Initial_Index.sql附近使用的语法#   20170109不需要== >>>在第1行的SOURCE Inst'

.sql工作台调用MySQL脚本时,SOURCE关键字似乎不起作用,但从mysql>命令行调用时,它确实起作用。但是,看来我正在使用的C#代码等效于从MySQL工作台调用它。有谁知道我该如何改变我的C#代码,以将调用等同于mysql>命令行调用。我认为这可以解决问题。

编辑1:我尝试通过运行C#中的shell脚本来执行此操作,但是由于连接时需要输入密码,所以它不起作用

编辑2:此问题与某人认定为“重复”的问题完全不同。请完整阅读问题。

1 个答案:

答案 0 :(得分:0)

我认为您需要更改c#代码以使其与mysql>命令行客户端相同的方式工作

  • 解析您读入的文件
  • 识别源语句
  • 加载并执行源语句中的每个文件