【发布时间】:2018-04-13 08:19:31
【问题描述】:
我在保存到数据库时遇到问题。当我上传时,它会继续插入重复数据。我可以知道如何预防吗?我下面的代码没有错误。
asp.net
<asp:FileUpload ID="FileUpload" runat="server" AllowMultiple="true" />
vb.net
Try
If Me.FileUpload.PostedFile.FileName = "" Then
Throw New Exception("Please Attach file!")
Else
For Each postedfile As HttpPostedFile In FileUpload.PostedFiles
fileName = Me.lblId2.Text & "_" & Path.GetFileName(FileUpload.PostedFile.FileName)
FileUpload.PostedFile.SaveAs((Server.MapPath("~/Attachment/UploadFile_/") + fileName))
FilePath = "~/Attachment/UploadFile_/" + fileName
filesize = Convert.ToInt32(fileName.Length)
params.Clear()
strsql = " INSERT INTO tb_upload " & _
" (UploadDT, cr_runnum,DestFileName,DataSize, FileName, Remarks) VALUES " & _
" (@UploadDT, @cr_runnum, @DestFileName, @DataSize, @FileName, @Remarks)"
params.Add("@UploadDT", Format(datetimenow, "dd MMM yyyy hh:mm:ss tt"))
params.Add("@cr_runnum", Me.lblId2.Text.Trim)
params.Add("@DestFileName", FilePath)
params.Add("@DataSize", filesize)
params.Add("@FileName", fileName)
params.Add("@Remarks", Me.txtRemarks.Text)
iResult = Common.execNonQuery(strsql, Common.txn, params)
If iResult = 0 Then
Throw New Exception("Data insertion failed. Please contact MIS Administrator!")
End If
Next
lblUnsuccess.Text = String.Format("{0} files have been uploaded successfully.", FileUpload.PostedFiles.Count)
End If
Catch ex As Exception
Me.lblUnsuccess.Text = ex.Message
Finally
Common.CloseConn()
End Try
函数执行非查询 refer here exec non query
【问题讨论】:
-
filesize = Convert.ToInt32(fileName.Length) 这不会给你文件的大小。它只会给出文件名的长度。
-
我允许用户上传多张图片,它会继续保存选择的第一张图片,但数据库与第一张图片有重复记录。
-
您的问题不在这里。给我看你的 exec 非查询函数
-
请参考图片。
-
它与其他插入代码一起工作正常。仅在此文件上传时发生。