我的页面上有一些上传控件正在由ajax ModalPopUpExtender显示,但它们目前无法正常工作。有人可以帮我弄清楚出了什么问题,以便他们可以开始将信息输入我的数据库吗?
顺便说一下,我不知道隐藏的字段是用于或正在做什么,所以如果有人理解,请向我解释。我没有写这个,我只是想解决它。
<!-- Add a Document -->
<li>
<asp:LinkButton ID="DocumentButton" runat="server">Document</asp:LinkButton>
<asp:Panel ID="DocumentPanel" runat="server" CssClass="modalPopup" Style="display:none">
<asp:FileUpload ID="DocumentUpload" runat="server" />
<asp:Button ID="SubmitDocument" runat="server" Text="Upload" onclick="SubmitDocument_Click" /><asp:Button ID="CancelDocument" runat="server" Text="Cancel" /><asp:HiddenField ID="filename" runat="server" />
</asp:Panel>
<asp:ModalPopupExtender ID="DocumentModal" runat="server" DropShadow="True"
DynamicServicePath="" Enabled="True" OkControlID="SubmitDocument" PopupControlID="DocumentPanel" TargetControlID="DocumentButton"></asp:ModalPopupExtender>
</li>
Protected Sub SubmitDocument_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SubmitDocument.Click
'Builds the full absolute URL to be inserted into the database.
Dim hostURL As String = Request.Url.Scheme & "://" & Request.Url.Host & ":" & Request.Url.Port & Request.ApplicationPath
Dim sqlFileHREF As String = "INSERT INTO Marketing (ProductID, MarketingTypeID, MarketingTitle, MarketingData) VALUES (" & ProductID.Value & " , 4 , '" & LinkTitle.Text & "', '" & hostURL & "uploads/" & ProductID.Value & "/" & filename.Value & "')"
'Create SQL Connection
Dim SqlConnection As New SqlConnection("Server=off-db1;uid=productsDB_admin;pwd=*****;database=Products")
SqlConnection.Open()
Dim sqlCommand As New SqlCommand(sqlFileHREF, SqlConnection)
sqlCommand.ExecuteNonQuery()
SqlConnection.Close()
Response.Redirect(Request.RawUrl)
End Sub
答案 0 :(得分:1)
在ModalPopupExtender中设置OkControlID="SubmitDocument"
可防止在服务器端引发Click
按钮的SubmitDocument
事件。
首先要尝试删除它并在DocumentModal.hide()
Sub中添加SubmitDocument_Click
。
更新:
然后,您可以向sqlFileHREF
添加一个监视,以查找导致Incorrect syntax near ','.
的原因我怀疑您有引号或其他特殊字符。你可以做sqlFileHREF.Replace("'", "''")
这样的事情来加倍你的报价。
注意:执行这样的SQL代码会使您容易受到SQL注入的攻击!
注意2:最好从连接字符串中删除密码并将其替换为您未来帖子中的星号(pwd=********
)(您应该编辑此密码)
更新2:
使用DocumentUpload.FileName
代替filename.Value
,看起来像HiddenField这样的文件名用于某些未实现的功能或测试目的。