Hi,
Please try below code.
Code
C#
protected void SaveEmails(object sender, EventArgs e)
{
List<Email> Emails = new List<Email>();
for (int i = 0; i < Emails.Count; i++)
{
string constr = ConfigurationManager.ConnectionStrings["ConString2"].ConnectionString;
string sqlStatment = "INSERT INTO [Emails] ([From],[Subject],[Body],[Date],[Attachment]) VALUES (@From ,@Subject,@Body,@Date,@Attachment)";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(sqlStatment, con))
{
con.Open();
cmd.Parameters.AddWithValue("@From", Emails[i].From);
cmd.Parameters.AddWithValue("@Subject", Emails[i].Subject);
cmd.Parameters.AddWithValue("@Body", Emails[i].Body);
cmd.Parameters.AddWithValue("@Date", Emails[i].Date);
string filePath = Server.MapPath(Emails[i].AttachmentFileName);
string filename = Path.GetFileName(filePath);
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
br.Close();
fs.Close();
cmd.Parameters.AddWithValue("@Attachment", bytes);
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
Email Class
public class Email
{
public string From { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public string Date { get; set; }
public string AttachmentFileName { get; set; }
}
VB.Net
Protected Sub SaveEmails(ByVal sender As Object, ByVal e As EventArgs)
Dim Emails As List(Of Email) = New List(Of Email)()
For i As Integer = 0 To Emails.Count - 1
Dim constr As String = ConfigurationManager.ConnectionStrings("ConString2").ConnectionString
Dim sqlStatment As String = "INSERT INTO [Emails] ([From],[Subject],[Body],[Date],[Attachment]) VALUES (@From ,@Subject,@Body,@Date,@Attachment)"
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand(sqlStatment, con)
con.Open()
cmd.Parameters.AddWithValue("@From", Emails(i).From)
cmd.Parameters.AddWithValue("@Subject", Emails(i).Subject)
cmd.Parameters.AddWithValue("@Body", Emails(i).Body)
cmd.Parameters.AddWithValue("@Date", Emails(i).Date)
Dim filePath As String = Server.MapPath(Emails(i).AttachmentFileName)
Dim filename As String = Path.GetFileName(filePath)
Dim fs As FileStream = New FileStream(filePath, FileMode.Open, FileAccess.Read)
Dim br As BinaryReader = New BinaryReader(fs)
Dim bytes As Byte() = br.ReadBytes(CType(fs.Length, Int32))
br.Close()
fs.Close()
cmd.Parameters.AddWithValue("@Attachment", bytes)
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
Next
End Sub
Email Class
Public Class Email
Public Property From As String
Public Property Subject As String
Public Property Body As String
Public Property Date As String
Public Property AttachmentFileName As String
End Class
I hope this will help you out.