Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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# 将数据写入CSV文件_C#_Csv_File Io - Fatal编程技术网

C# 将数据写入CSV文件

C# 将数据写入CSV文件,c#,csv,file-io,C#,Csv,File Io,我有一个关于将数据写入CSV文件的问题。 我有一个名为test.csv的文件,其中有两个字段>accountnumber和relationid。 现在我想在它旁边添加另一个字段:IBAN。 IBAN是来自第一行的数据,由SOAP函数BBANtoIBAN验证 如何在CSV中保留2行数据AccountNumber和关系ID,并在第3行中添加IBAN 这是我目前的代码: using (var client = new WebService.BANBICSoapClient("IBANBICSoap")

我有一个关于将数据写入CSV文件的问题。 我有一个名为test.csv的文件,其中有两个字段>accountnumber和relationid。 现在我想在它旁边添加另一个字段:IBAN。 IBAN是来自第一行的数据,由SOAP函数BBANtoIBAN验证

如何在CSV中保留2行数据AccountNumber和关系ID,并在第3行中添加IBAN

这是我目前的代码:

using (var client = new WebService.BANBICSoapClient("IBANBICSoap"))
{
    List<List<string>> dataList = new List<List<string>>();
    TextFieldParser parser = new TextFieldParser(@"C:\CSV\test.csv");
    parser.TextFieldType = FieldType.Delimited;
    parser.SetDelimiters(";");
    while (!parser.EndOfData)
    {
        List<string> data = new List<string>();
        string row = parser.ReadLine();

        try
        {
            string resultIBAN = client.BBANtoIBAN(row);
            if (resultIBAN != string.Empty)
               data.Add(resultIBAN);
            else
               data.Add("Accountnumber is not correct.");
        }
        catch (Exception msg)
        {
            Console.WriteLine(msg);
        }
        dataList.Add(data);
    }  
}
使用(var client=new WebService.BANBICSoapClient(“IBANBICSoap”))
{
List dataList=新列表();
TextFieldParser=newtextfieldparser(@“C:\CSV\test.CSV”);
parser.TextFieldType=FieldType.Delimited;
parser.SetDelimiters(“;”);
而(!parser.EndOfData)
{
列表数据=新列表();
字符串行=parser.ReadLine();
尝试
{
字符串resultIBAN=client.BBANtoIBAN(行);
if(resultIBAN!=string.Empty)
添加数据(resultIBAN);
其他的
添加数据(“帐号不正确”);
}
捕获(异常消息)
{
控制台写入线(msg);
}
dataList.Add(数据);
}  
}
我认为:

StreamReader sr = new StreamReader(@"C:\CSV\test.csv")
StreamWriter sw = new StreamWriter(@"C:\CSV\testOut.csv")
while (sr.Peek() >= 0) 
{
    string line = sr.ReadLine(); 


try
{
       string[] rowsArray = line.Split(';');
       string row = rowsArray[0];
       string resultIBAN = client.BBANtoIBAN(row);
       if (resultIBAN != string.Empty)
       {
           line +=";"+ resultIBAN;
       }
       else
       {
            line +=";"+"Accountnumber is not correct.";
       }

 }
 catch (Exception msg)
 {
     Console.WriteLine(msg);
 }
 sw.WriteLine(line) 
 }
sr.Close();
sw.Close();

我将这样做来解析csv文件,并在数据列表中添加一个额外的项目:

        List<List<string>> dataList = new List<List<string>>();
        string filename = @"C:\CSV\test.csv";
        using (StreamReader sr = new StreamReader(filename))
        {
            string fileContent = sr.ReadToEnd();

            foreach (string line in fileContent.Split(new string[] {Environment.NewLine},StringSplitOptions.RemoveEmptyEntries))
            {
                List<string> data = new List<string>();
                foreach (string field in line.Split(';'))
                {
                    data.Add(field);
                }
                try
                {
                    string resultIBAN = client.BBANtoIBAN(data[0]);
                    if (resultIBAN != string.Empty)
                    {
                        data.Add(resultIBAN);
                    }
                    else
                    {
                        data.Add("Accountnumber is not correct.");
                    }
                }
                catch (Exception msg)
                {
                    Console.WriteLine(msg);
                }
                dataList.Add(data);
            }
List dataList=newlist();
字符串文件名=@“C:\CSV\test.CSV”;
使用(StreamReader sr=新StreamReader(文件名))
{
字符串fileContent=sr.ReadToEnd();
foreach(fileContent.Split中的字符串行(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries))
{
列表数据=新列表();
foreach(第行中的字符串字段。拆分(“;”))
{
添加数据(字段);
}
尝试
{
字符串resultIBAN=client.BBANtoIBAN(数据[0]);
if(resultIBAN!=string.Empty)
{
添加数据(resultIBAN);
}
其他的
{
添加数据(“帐号不正确”);
}
}
捕获(异常消息)
{
控制台写入线(msg);
}
dataList.Add(数据);
}

您可以阅读文件并在每一行中添加“[yourIBANPropValue]”在parser.Readline()中是什么意思?是否有任何文档或示例可供我在线查看?我猜行就是本例中的行?嗯,我将添加一些附加信息,我忘了一些东西testOut.csv已创建;但为空。您是否添加了sr.Close()和sw.Close()?它仍然是空的?有关于异常的消息吗?那么在本例中的“行”是“字段”?我如何验证函数BBANtoIBAN中第一行的值,然后在函数的输出中添加第三行?抱歉,没有捕捉到。您将传入列表中的第一个字符串。