在vb.net中显示/检索sql数据库中的图像
发布时间:2020-12-17 00:03:51 所属栏目:大数据 来源:网络整理
导读:对于专业人士来说,这应该非常简单.我在sql server数据库中有图像,我想在我的aspx(vb.net)文件中检索它们. 我在aspx这个图像控件 – 在vb.net中我已经启动了这段代码 – Private Sub ImageDisplay() Dim SqlCnn As SqlConnection = Nothing,sql As String = "
对于专业人士来说,这应该非常简单.我在sql server数据库中有图像,我想在我的aspx(vb.net)文件中检索它们.
我在aspx这个图像控件 – 在vb.net中我已经启动了这段代码 – Private Sub ImageDisplay() Dim SqlCnn As SqlConnection = Nothing,sql As String = "" ConnectDB(SqlCnn) Try sql = "SELECT image FROM employees (NOLOCK) WHERE ID =" & emp_id sqlcmd = New SqlCommand(sqlstr,SqlCnn) Dim imageData As Byte() = DirectCast(sqlcmd.ExecuteScalar(),Byte()) Dim newImage As Image = Nothing If Not imageData Is Nothing Then Using ms As New MemoryStream(imageData,imageData.Length) ms.Write(imageData,imageData.Length) newImage = Image.FromStream(ms,True) End Using image1.Image = newImage End If Catch ex As Exception ReportError(ex) Finally CloseDB(SqlCnn) End Try End Sub 我在2个地方收到错误.
您需要命令对象和数据读取器.但是,您将它们放在错误的页面中.
如果您检查图像控件的属性,您将看到它没有任何Image属性,因此您无法加载图像并放入控件.原因是您不能在同一响应中发送页面和图像,而是浏览器必须在页面加载时单独请求图像. 要从数据库中获取图像并在网页中显示,您需要一个单独的代理页面,您可以使用该页面仅从数据库中获取图像数据.在Image控件的ImageUrl属性中,您可以输入类似“GetImage.ashx”的内容.然后,您创建一个具有该名称的HTTP处理程序,该处理程序将从数据库中获取图像数据并写入响应流. 例: Private Sub HandleRequest(context as HttpContext) Dim SqlCnn As SqlConnection = Nothing,sql As String Dim emp_id As Integer emp_id = Int32.Parse(context.Request.QueryString("id")) ConnectDB(SqlCnn) Try sql = "SELECT image FROM employees (NOLOCK) WHERE ID =" & emp_id sqlcmd = New SqlCommand(sqlstr,SqlCnn) Dim imageData As Byte() = DirectCast(sqlcmd.ExecuteScalar(),Byte()) context.Response.ContentType = "image/jpeg" context.Response.BinaryWrite(imageData) Catch ex As Exception ReportError(ex) Finally CloseDB(SqlCnn) End Try End Sub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |