'\'附近的语法不正确

naheiwProg

我需要编写一个程序,该程序在特定路径位置迭代一些SQL脚本并执行它们。进度将在进度栏中增加,我仍然需要做,进度将显示在上TextBox运行程序时,出现以下错误:

'\'附近的语法不正确。

代码如下:

public void runScripts()
{
    int lc = System.IO.Directory.GetFiles(this.sc, "*.*", System.IO.SearchOption.AllDirectories).Length;
    this.pgbCopyProgress.Maximum = lc;
    DirectoryInfo dir = new DirectoryInfo(this.sc);
    DirectoryInfo[] dirs = dir.GetDirectories();

    if (!dir.Exists)
    {
        throw new DirectoryNotFoundException(
                "Source directory does not exist or could not be found: "
                + this.sc);
    }

    // Get the scripts in the directory and run them
    FileInfo[] files = dir.GetFiles();
    foreach (FileInfo file in files)
    {
        try
        {
            string sqlConnectionString = "Data Source=(local);Initial Catalog=Wiehan_Deployer;Integrated Security=True";
            string f = this.sc;
            f = f + @"\" + file;
            FileInfo fl = new FileInfo(f);
            string scripts = file.OpenText().ReadToEnd();
            SqlConnection con = new SqlConnection(sqlConnectionString);
            con.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = fl.ToString();
            cmd.ExecuteNonQuery();
            con.Close();
            txtEvents.Text += "\nScript executed successfully." + f;
            lc = System.IO.Directory.GetFiles(this.sc, "*.*", System.IO.SearchOption.AllDirectories).Length;
            this.pgbCopyProgress.Value = lc;
            this.pgbCopyProgress.Update();
            this.pgbCopyProgress.Refresh();
        }
        catch (Exception ex)
        {
            txtEvents.Text += ex.Message + "\r\n" ;
            txtEvents.Update();
            txtEvents.Refresh();
        }
    }
}
乔恩·斯基特

这就是问题:

cmd.CommandText = fl.ToString();

您将文件名作为命令文本而不是文本本身传递。您正在此处加载文本:

string scripts = file.OpenText().ReadToEnd();

...但不使用该变量。我怀疑您想要:

cmd.CommandText = scripts;

注意,使用File.ReadAllText将比创建新的FileInfo简单得多

string sql = File.ReadAllText(@"\\" + this.sc);

还要注意的是,你应该有using你的报表SqlConnection,并SqlCommand以正常关闭他们,如果有异常抛出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章