vb.net - 无法将文件上传到数据表并在gridview上显示(上传文件时没有任何反应)
问题描述
我想添加上传到数据表的文件,然后在gridview上显示。当我上传文件时,没有任何反应,gridview也没有更新。我有将文件上传到sql数据库的代码,但现在我只想将文件上传到datatable 并将其显示在 gridview 上,然后最终用户可以决定是否将文件插入 sql server 数据库。我不确定为什么我无法上传文件,我还尝试显示我试图在标签上插入数据的变量,但也没有任何反应。如果有人可以帮助我,那就太好了。
前端代码
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="Upload" />
<hr />
<asp:GridView ID="GridView1" runat="server" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
RowStyle-BackColor="#A1DCF2" ShowHeaderWhenEmpty="True" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#000"
AutoGenerateColumns="false" Height="338px" Width="449px">
<Columns>
<asp:BoundField DataField="filename" HeaderText="File Name"/>
</Columns>
</asp:GridView>
</div>
</form>
后端
Private dt As DataTable
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'BindGrid()
fill()
Session("table") = dt
Else
' this is a page post back - re-load the active table into our
' forms level dt.
dt = Session("table")
End If
End Sub
Protected Sub fill()
dt = New DataTable()
Dim dc As DataColumn = New DataColumn("file")
dc.DataType = System.Type.[GetType]("System.Byte[]")
dt.Columns.Add(dc)
dt.Columns.Add("filename", GetType(String))
dt.Columns.Add("filetype", GetType(String))
End Sub
Protected Sub Upload(sender As Object, e As EventArgs) Handles btnUpload.Click
Dim filename As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim contentType As String = FileUpload1.PostedFile.ContentType
Dim fs As Stream = FileUpload1.PostedFile.InputStream
Dim br As New BinaryReader(fs)
Dim bytes As Byte() = br.ReadBytes(DirectCast(fs.Length, Long))
Dim R As DataRow = dt.NewRow()
R("file") = bytes
R("filename") = filename
R("filetype") = contentType
dt.Rows.Add(R)
GridView1.DataSource = dt
GridView1.DataBind()
Response.Redirect(Request.Url.AbsoluteUri)
Label1.Text = contentType
End Sub
解决方案
推荐阅读
- python - Django - ModelForm 中的选择列表
- mysql - 想要更新 mysql 字段值,如 00001、00002、00003
- java - UcanAccess 和 Java 出现 BIG_INT 错误
- javascript - 在 url 更改时加载事件
- angular2-routing - 具有绝对基本 href 和模块的角度路由
- vba - 从 Word 中提取标题到 Excel
- angular - 如何通过单选按钮值使用角度 6 初始化变量?
- c# - 数据库冲突删除
- jquery - TypeScript 无法加载/使用 table2excel
- angular - 当滚动条可见时,带有子菜单的 Angular Material sidenav 无法正确推送