C# - 将数据库中保存的文件附加到电子邮件中

发布于 2024-11-25 17:30:54 字数 367 浏览 1 评论 0原文

如何将保存在 MS SQL 数据库中的一个或多个文件添加到电子邮件中?我已经知道如何附加保存在目录中或来自 fileUpload 控件的文件。

我的数据字段如下:

col1: Email_ID - int

col2: file_name - varchar

col3: file_content - image

所以我的 SQL select 语句非常简单:

Select file_name, file_content from Attachments where Email_ID = 333

我只是不知道如何将它们附加到我的电子邮件中。

谢谢!

How can I add one or more files that are saved in a MS SQL database to an email? I already know how to attach files saved in a directory or from a fileUpload control.

My datable fields are as such:

col1: Email_ID - int

col2: file_name - varchar

col3: file_content - image

So my SQL select statement is prety simple:

Select file_name, file_content from Attachments where Email_ID = 333

I just can't figure how to attach them to my emails afterwards.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自由如风 2024-12-02 17:30:55
  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

  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
}

References : http://www.codeproject.com/KB/database/ImageSaveInDataBase.aspx

遮了一弯 2024-12-02 17:30:55

从 SQL 获取图像,将其转换为流,然后创建电子邮件附件。
样本:
Attachment(Stream, String) 使用指定的流和名称初始化 Attachment 类的新实例。

Get image from SQL, convert it to stream then create Attachment to your emails.
Sample:
Attachment(Stream, String) Initializes a new instance of the Attachment class with the specified stream and name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文