C # - прикрепить файл, сохраненный в базе данных, к электронному письму - PullRequest
2 голосов
/ 21 июля 2011

Как добавить один или несколько файлов, сохраненных в базе данных MS SQL, в электронное письмо?Я уже знаю, как прикрепить файлы, сохраненные в каталоге или в элементе управления fileUpload.

Мои поля данных могут быть такими:

col1: Email_ID - int

col2: имя_файла- varchar

col3: file_content - image

Так что мой оператор SQL select очень прост:

Select file_name, file_content from Attachments where Email_ID = 333

Я просто не могу понять, как прикрепить их к моим электронным письмампотом.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 июля 2011
  SqlCommand cmdSelect=new SqlCommand("Select file_name, file_content " + 
              " from Attachments where Email_ID=@ID",this.sqlConnection1);
        cmdSelect.Parameters.Add("@ID",SqlDbType.Int,4);
        cmdSelect.Parameters["@ID"].Value=333;

DataTable dt = new DataTable();
        this.sqlConnection1.Open();
        SqlDataAdapter sda = new SqlDataAdapter();
            sda.SelectCommand = cmdSelect;
            sda.Fill(dt);
     if(dt.Rows.Count > 0)
{
        byte[] barrImg=(byte[])dt.Rows[0]["file_content"];
        string strfn= "Your File Directory Path" + Convert.ToString(dt.Rows[0]["file_name"]);
        FileStream fs=new FileStream(strfn, 
                          FileMode.CreateNew, FileAccess.Write);
        fs.Write(barrImg,0,barrImg.Length);
        fs.Flush();
        fs.Close();
   //now you can attache you file to email here your file is generate at path stored in "strfn" variable
}

Рекомендации: http://www.codeproject.com/KB/database/ImageSaveInDataBase.aspx

2 голосов
/ 21 июля 2011

Получить изображение из SQL, преобразовать его в поток, а затем создать вложение в ваши электронные письма. Образец: Attachment (Stream, String) Инициализирует новый экземпляр класса Attachment с указанными потоком и именем.

...