将一些pdf文件作为存储在数据库中的电子邮件附件发送到c#

时间:2015-09-30 08:32:34

标签: c# list

我需要发送一些pdf文件作为存储在数据库中的电子邮件附件。

enter image description here

我需要将逗号分隔的字符串转换为List<string>并尝试使用此c#代码:

if (reader.HasRows)
{
    while (reader.Read())
    {
        RecoveryAtt = reader["Att"].ToString();                                                                       
        string Commaseplist;
        string[] itemList = { RecoveryAtt.ToString() };
        Commaseplist = String.Join("; ", itemList);
        Response.Write(Commaseplist.ToString());

    }
}

但在输出中我有:

D:\inetpub\wwwroot\app\public\015.pdfD:\inetpub\wwwroot\app\public\016.pdfD:\inetpub\wwwroot\app\public\017.pdfD:\inetpub\wwwroot\app\public\018.pdfD:\inetpub\wwwroot\app\public\019.pdf

在电子邮件附件中首先只有Pdf文件......

这不起作用导致返回没有分隔符的字符串[]。

请帮忙。

2 个答案:

答案 0 :(得分:0)

每次读取数据库中的新行并因此丢失以前的数据时,您将重新创建itemList数组和Commaseplist字符串。输出会连续输出一次并附加 - 您不会添加到数组中。

也许更好的方法是:

if (reader.HasRows)
{
    StringBuilder commaList = new StringBuilder();
    while (reader.Read())
    {
        commaList.Append(reader["Att"].ToString());                                                                      
        commaList.Append(",");

    }
    commaList.Remove(commaList.Lenth-1,1);
    Response.Write(commaList.ToString());
}

答案 1 :(得分:0)

我认为这会解决问题

string[] itemList = Regex.Split(RecoveryAtt, @"(?=D:)").Where(x => !string.IsNullOrEmpty(x)).ToArray();
Commaseplist = String.Join("; ", itemList);
Response.Write(Commaseplist);