Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mysql查询上的saveFileDialog文件夹路径_C#_Mysql_.net - Fatal编程技术网

C# mysql查询上的saveFileDialog文件夹路径

C# mysql查询上的saveFileDialog文件夹路径,c#,mysql,.net,C#,Mysql,.net,我想更改MySQL查询中的文件夹路径。但我不知道怎么做 我的visual studio异常:{“无法创建/写入文件” 'C:usersandridesktopoled.csv'(错误代码:13 \“权限被拒绝\”) 我想要的:C:\Users\Andri\Desktop\loled.csv 以下是我的代码: public bool exportCSV_DataBuku() { SaveFileDialog save = new SaveFileDialog();

我想更改MySQL查询中的文件夹路径。但我不知道怎么做

我的visual studio异常:{“无法创建/写入文件” 'C:usersandridesktopoled.csv'(错误代码:13 \“权限被拒绝\”)

我想要的:C:\Users\Andri\Desktop\loled.csv

以下是我的代码:

public bool exportCSV_DataBuku()
    {
        SaveFileDialog save = new SaveFileDialog();
        save.Filter = "Comma Seperated Values / Excel Document (*.csv)|*.csv|All files (*.*)|*.*";
        save.FilterIndex = 1;

        if (save.ShowDialog() == DialogResult.OK)
        {
            query = "SELECT * FROM daftar_buku INTO OUTFILE '" + save.FileName
            + "' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'";
        }
        if(this.OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.ExecuteNonQuery();
            this.CloseConnection();
            return true;
        } else
        {
            return false;
        }
    }

这是一个权限问题,您必须以管理员身份运行应用程序才能将文件写入C:\目录。 如果要将输出保存到“C:\Users\Andri\”中,为什么要使用SaveFileDialog? 您只需将路径写入查询命令即可

顺便说一下,在显示对话框之前,只需将SaveFileDialog对象的属性InitialDirectory设置为所需的路径

save.InitialDirectory = "C:\Users\Andri\Desktop\";
save.FileName = "loled.csv";
上述代码将打开指向默认文件名为“loled.csv”的桌面目录的保存对话框

更新 如果要始终将文件保存到路径“C:\Users\Andri\Desktop\loled.csv”,请将查询命令更改为

 query = "SELECT * FROM daftar_buku INTO OUTFILE 'C:\Users\Andri\Desktop\loled.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'";

我已经找到了自己的答案,如果你们和我有同样的问题,我想帮助你们

public bool exportCSV_DataBuku()
{
    SaveFileDialog save = new SaveFileDialog();
    save.Filter = "Comma Seperated Values / Excel Document (*.csv)|*.csv|All files (*.*)|*.*";
    save.FilterIndex = 1;

    string fileName = save.FileName;
    fileName = fileName.Replace("\\","\\\\");

    if (save.ShowDialog() == DialogResult.OK)
    {
        query = "SELECT * FROM daftar_buku INTO OUTFILE '" + fileName
        + "' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'";
    }
    if(this.OpenConnection() == true)
    {
        MySqlCommand cmd = new MySqlCommand(query, connection);
        cmd.ExecuteNonQuery();
        this.CloseConnection();
        return true;
    } else
    {
        return false;
    }
}
下面是我添加的代码:


是否有代码替换它或授予保存权限?我只是以我的C目录为例,我想把它保存在任何地方。很抱歉我的英语不好。是的,看看这个,但我会使用try-catch,如果抛出权限异常,我会要求用户更改目录或以管理员身份运行程序。我想这是最好的办法。
string fileName = save.FileName;
fileName = fileName.Replace("\\","\\\\");
if (save.ShowDialog() == DialogResult.OK)
{
    query = "SELECT * FROM daftar_buku INTO OUTFILE '" + fileName
    + "' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'";
}