1.Your problem is that your are using the same
SqlCommand
object for all items of your
for
, so the command object already have the parameter after its first iteration.
2.The solution is to create the
SqlCommand
object local inside the
for
:
for (int i = 0; i <Records.Length; i++)
{
string[] arrRecords = Records[i].Split(',');
string[] fileExtension = arrRecords[0].Split('.');
string documentType = string.Empty;
switch (fileExtension[1])
{
case : documentType = "application/pdf";
break;
case : documentType = "application/vnd.ms-excel";
break;
case : documentType = "application/vnd.ms-excel";
break;
case : documentType = "application/vnd.ms-word";
break;
case "docx": documentType = "application/vnd.ms-word";
break;
case "gif": documentType = "image/gif";
break;
case "png": documentType = "image/png";
break;
case "jpg": documentType = "image/jpg";
break;
}
string size = arrRecords[2];
int fileSize = Convert.ToInt32(size);
byte[] documentbinary = new byte[fileSize];
fuUpload.PostedFile.InputStream.Read(documentbinary, 0, fileSize);
string file = arrRecords[0].ToString();
string format = documentType.ToString();
cmd = new SqlCommand();
cmd.CommandText = "Insert into Attachment(File_Name,File_Format,File_Content,User_Notice_Mapping_ID) values('" + file + "','" + format + "',@DocData," + userNoticeID + ")";
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
cmd.Parameters.Add("@DocData", SqlDbType.VarBinary, fileSize);
cmd.Parameters["@DocData"].Value = documentbinary;
cmd.ExecuteNonQuery();
String msg = "Your message has been Sent Successfully";
ShowAlert(msg, true);
}