sudhakarthikeyan Ответов: 1

Я пытался отправить файл excel, но получаю ошибку


Процесс не может получить доступ к файлу 'C:\Users\God\Desktop\DataDump\1Excel.xls-потому что его использует другой процесс.

int count = 0;
           string connectionstring = "Server=(local);initial catalog=Test;Trusted_Connection=True";
           SqlConnection sqlConnection = new SqlConnection(connectionstring);
           SqlCommand cmd = new SqlCommand();
           SqlDataReader reader;
           DataSet ds = new DataSet();
           cmd.CommandText = "select * from Empdetails";
           cmd.CommandText += " where shifttype  = @par ";
           cmd.Parameters.Add("@par", SqlDbType.Int).Value = j;
           cmd.CommandType = CommandType.Text;
           cmd.Connection = sqlConnection;
           sqlConnection.Open();
           reader = cmd.ExecuteReader();
           if (reader.HasRows)
           {
               System.IO.StreamWriter sw_In = new System.IO.StreamWriter(@"C:\Users\God\Desktop\DataDump\" + j + "Excel.xls");
               while (reader.Read())
               {
                   if (count == 0)
                   {
                       for (int i = 0; i < reader.FieldCount; i++)
                       {
                           sw_In.AutoFlush = true;
                           sw_In.Write(reader.GetName(i) + "\t");
                       }
                       sw_In.Write("\n");
                       count = 1;
                   }
                   for (int i = 0; i < reader.FieldCount; i++)
                   {
                       sw_In.AutoFlush = true;
                       sw_In.Write(reader[i].ToString() + "\t");
                   }

                   MailMessage mis = new MailMessage();
                   SmtpClient smtpserver = new SmtpClient("smtp.gmail.com");
                   smtpserver.Credentials = new System.Net.NetworkCredential("narasiman1986@gmail.com", "narasiman123");
                   smtpserver.Host = "smtp.gmail.com";
                   smtpserver.Port = 587;
                   smtpserver.EnableSsl = true;
                   mis.From = new MailAddress("narasiman1986@gmail.com", "Report");
                   mis.IsBodyHtml = true;
                   System.Net.Mail.Attachment attachment;
                   attachment = new 
System.Net.Mail.Attachment(@"C:\Users\God\Desktop\DataDump\" + j + "Excel.xls");
                   mis.Attachments.Add(attachment);

                   mis.To.Add("narasiman1986@gmail.com");
                   mis.CC.Add(new MailAddress("narasiman1986@gmail.com"));
                   mis.Subject = "Data Dump Report";
                   smtpserver.Send(mis);

                   sw_In.Write("\n");
               }

           }
           sqlConnection.Close();
           reader.Close();

when i run the above code shows error as follows

The process cannot access the file 'C:\Users\God\Desktop\DataDump\1Excel.xls' because it is being used by another process.

the error shows in below line as follows

System.Net.Mail.Attachment(@"C:\Users\God\Desktop\DataDump\" + j + "Excel.xls");
i am sending the excel file to mail.

What I have tried:

i am sending excel file to mail. but i am getting error as follows

The process cannot access the file 'C:\Users\God\Desktop\DataDump\1Excel.xls' because it is being used by another process.

Richard MacCutchan

Вы не можете отправить вложение электронной почты, полученное из файла, который не был создан должным образом. И ты такой все еще не создавать файлы Excel. Вы должны изменить расширение на .txt, так как именно этот тип файла вы создаете.

1 Ответов

Рейтинг:
0

Patrice T

Здесь нет ничего общего с вашим кодом, сообщение об ошибке довольно явное, проблема не в вашем коде:

Цитата:
Процесс не может получить доступ к файлу 'C:\Users\God\Desktop\DataDump\1Excel.xls-потому что его использует другой процесс.
Какое слово вы не понимаете в сообщении об ошибке ?