2011-07-21 16 views
2

MS SQLデータベースに保存されている1つ以上のファイルをメールに追加するにはどうすればよいですか?私はすでに、ディレクトリに保存されたファイルを添付するか、fileUploadコントロールからファイルを添付する方法を知っています。C# - データベースに保存されたファイルをメールに添付する

私datableフィールドのような、次のとおりです。

COL1:EMAIL_ID -

col2にint型: - varchar型

col3というFILE_NAME:file_content - イメージ

だから私のSQLのSELECT文がpretyシンプルですが:

Select file_name, file_content from Attachments where Email_ID = 333 

後でそれらを私の電子メールに添付してください。

ありがとうございます!

+0

は最初の一時ファイルに保存し、電子メールに添付しているが。 – Johan

答えて

3
SqlCommand cmdSelect=new SqlCommand("Select file_name, file_content " + 
       " from Attachments where [email protected]",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

SQLからイメージを取得し、ストリームに変換して電子メールに添付ファイルを作成します。 サンプル: Attachment(Stream、String)指定されたストリームと名前でAttachmentクラスの新しいインスタンスを初期化します。

関連する問題