Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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
Elence Solutions CSV库错误C#_C#_Csv_Load_Save_Helper - Fatal编程技术网

Elence Solutions CSV库错误C#

Elence Solutions CSV库错误C#,c#,csv,load,save,helper,C#,Csv,Load,Save,Helper,我正在使用Elence solutions CSV库来保存和加载文件中的一些数据 我的代码正确地保存和加载,但当我加载并尝试保存时,会出现一个错误,表示另一个进程正在使用该文件 加载方法如下所示: private void loadfile(string name) { int key = 696969; CsvReader read = new CsvReader("data.csv"); try { do {

我正在使用Elence solutions CSV库来保存和加载文件中的一些数据

我的代码正确地保存和加载,但当我加载并尝试保存时,会出现一个错误,表示另一个进程正在使用该文件

加载方法如下所示:

private void loadfile(string name)
{
    int key = 696969;
    CsvReader read = new CsvReader("data.csv");

    try
    {
        do
        {
            read.ReadNextRecord();
        } while (name != read.Fields[0]);
        int decAgain = int.Parse(read.Fields[1], System.Globalization.NumberStyles.HexNumber); //convert to int
        int dec = decAgain ^ key;
        MessageBox.Show(dec.ToString());

    }
    catch (Exception)
    {
        MessageBox.Show("Not Found");
    }
        read = null;

}
如您所见,我正在处理“read”对象

以下是保存方法:

private void savefile(string encrypted, string name)
{
    CsvFile file = new CsvFile();
    CsvRecord rec = new CsvRecord();
    CsvWriter write = new CsvWriter();

    rec.Fields.Add(name);
    rec.Fields.Add(encrypted);

    file.Records.Add(rec);
    write.AppendCsv(file, "data.csv");

    file = null;
    rec = null;
    write = null;

}
它总是卡在墙上。 我确实理解这个问题。未成功关闭读卡器。如何正确关闭文件

注意:我尝试了
read.Dispose()
,但它不起作用

你能帮帮我吗


关于

使用自动处置对象。它可能会解决你的问题

private void savefile(string encrypted, string name)
{
    using(CsvFile file = new CsvFile())
    {
        using(CsvRecord rec = new CsvRecord())
        {
            using(CsvWriter write = new CsvWriter())
            {

                rec.Fields.Add(name);
                rec.Fields.Add(encrypted);

                file.Records.Add(rec);
                write.AppendCsv(file, "data.csv");
            }
        }
    }
}

虽然错误是从加载开始的,但我在加载部分应用了你的理论,似乎解决了我的问题,谢谢!!