asp.net – System.Byte []在gridview中显示而不是图像?
发布时间:2020-12-16 07:24:13 所属栏目:asp.Net 来源:网络整理
导读:嗨,我有一个页面,允许我上传照片.然后,当我点击上传…照片已被批准.但是当我想在gridview中显示它时.图像必须出现的列给我“System.Byte []”而不是图像.救命 :) 这是我的代码: %@ Page Language="C#" Debug="true" %%@ Import Namespace="System" %%@ Imp
嗨,我有一个页面,允许我上传照片.然后,当我点击上传…照片已被批准.但是当我想在gridview中显示它时.图像必须出现的列给我“System.Byte []”而不是图像.救命 :)
这是我的代码: <%@ Page Language="C#" Debug="true" %> <%@ Import Namespace="System" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace = "System.Data.SqlClient" %> <%@ Import Namespace= "System.Data.OleDb" %> <script runat="server" type="text/c#"> protected void btnUpload_Click(object sender,EventArgs e) { { byte[] imageSize = new byte [FileUpload1.PostedFile.ContentLength]; HttpPostedFile uploadedImage = FileUpload1.PostedFile; uploadedImage.InputStream.Read (imageSize,(int)FileUpload1.PostedFile.ContentLength); // Create SQL Connection OleDbConnection con = new OleDbConnection(); con.ConnectionString = ConfigurationManager.ConnectionStrings["recordsConnectionString"].ConnectionString; // Create SQL Command OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = "INSERT INTO PendingRecords([Image])" + " VALUES (@Image)"; cmd.CommandType = CommandType.Text; cmd.Connection = con; OleDbParameter UploadedImage = new OleDbParameter ("@Image",OleDbType.VarBinary,imageSize.Length); UploadedImage.Value = imageSize; cmd.Parameters.Add(UploadedImage); con.Open(); cmd.ExecuteNonQuery(); GridView1.DataSourceID = ""; GridView1.DataSource = SqlDataSource1; GridView1.DataBind(); con.Close(); } } </script> <form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server"/> <asp:Label ID="lblMessage" runat="server"> </asp:Label> <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload"/> </div> <asp:GridView runat="server" id="GridView1" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames="ID"> <Columns> <asp:boundfield DataField="ID" HeaderText="ID" ReadOnly="True" InsertVisible="False" SortExpression="ID"> </asp:boundfield> <asp:boundfield DataField="Image" DataFormatString="{0}" HeaderText="Image" SortExpression="Image"> </asp:boundfield> <asp:boundfield DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName"> </asp:boundfield> </Columns> </asp:GridView> <asp:SqlDataSource runat="server" id="SqlDataSource1" ProviderName="<%$ConnectionStrings:recordsConnectionString.ProviderName %>" ConnectionString="<%$ConnectionStrings:recordsConnectionString %>" SelectCommand="SELECT * FROM [PendingRecords]" DeleteCommand="DELETE FROM [PendingRecords] WHERE [ID] = ?" InsertCommand="INSERT INTO [PendingRecords] ([Username],[Password],[FirstName],[LastName],[MiddleName],[Address],[Gender],[ContactNumber],[PlateNumber],[Color],[Brand],[LiscensedNumber]) VALUES (?,?,?)" UpdateCommand="UPDATE [PendingRecords] SET [Username] = ?,[Password] = ?,[FirstName] = ?,[LastName] = ?,[MiddleName] = ?,[Address] = ?,[Gender] = ?,[ContactNumber] = ?,[PlateNumber] = ?,[Color] = ?,[Brand] = ?,[LiscensedNumber] = ? WHERE [ID] = ?"> <DeleteParameters> <asp:parameter Name="ID" Type="Int32" /> </DeleteParameters> <UpdateParameters> <asp:parameter Name="Username" Type="String" /> <asp:parameter Name="Password" Type="String" /> <asp:parameter Name="FirstName" Type="String" /> <asp:parameter Name="LastName" Type="String" /> <asp:parameter Name="MiddleName" Type="String" /> <asp:parameter Name="Address" Type="String" /> <asp:parameter Name="Gender" Type="String" /> <asp:parameter Name="ContactNumber" Type="String" /> <asp:parameter Name="PlateNumber" Type="String" /> <asp:parameter Name="Color" Type="String" /> <asp:parameter Name="Brand" Type="String" /> <asp:parameter Name="LiscensedNumber" Type="String" /> <asp:parameter Name="ID" Type="Int32" /> </UpdateParameters> <InsertParameters> <asp:parameter Name="Username" Type="String" /> <asp:parameter Name="Password" Type="String" /> <asp:parameter Name="FirstName" Type="String" /> <asp:parameter Name="LastName" Type="String" /> <asp:parameter Name="MiddleName" Type="String" /> <asp:parameter Name="Address" Type="String" /> <asp:parameter Name="Gender" Type="String" /> <asp:parameter Name="ContactNumber" Type="String" /> <asp:parameter Name="PlateNumber" Type="String" /> <asp:parameter Name="Color" Type="String" /> <asp:parameter Name="Brand" Type="String" /> <asp:parameter Name="LiscensedNumber" Type="String" /> </InsertParameters> </asp:SqlDataSource> </form> 解决方法
我可能会为您提供一些不需要太多更改的解决方案.有点凌乱的恕我直言.
在下面的此模板字段中替换您的图像绑定字段. <asp:TemplateField> <HeaderTemplate>Image</HeaderTemplate> <ItemTemplate> <img src='data:image/jpg;base64,<%# Eval("Image") != System.DBNull.Value ? Convert.ToBase64String((byte[])Eval("Image")) : string.Empty %>' alt="image" height="100" width="200"/> </ItemTemplate> </asp:TemplateField> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – 将所有js文件捆绑在一个捆绑包中
- 详解ASP.NET MVC 利用Razor引擎生成静态页
- asp.net-mvc – 在mvc下拉列表中自动恢复
- asp.net-mvc – 使用jquery进行模型绑定ajax序列
- 9.翻译系列:EF 6以及EF Core中的数据注解特性(
- asp.net-web-api – 如何在ASP.NET Web API中验证
- Cannot attach the file *.mdf as database
- 有没有人对ASP.NET WebFormsMVP有所了解?
- wcf – 如何使用Fiddler收听asp.net开发服务器(即
- asp.net-mvc – 使用jQuery $.ajax()和$.post()发
热点阅读