这对于专业人士来说应该非常简单。我在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, 0, imageData.Length)
ms.Write(imageData, 0, 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个地方收到错误。 - newImage = Image.FromStream(ms,True) - image1.Image = newImage Fromstream不是system.web.ui.webcontrols.image的成员 和第二个错误图像不是system.web.ui.webcontrols.image
的成员答案 0 :(得分:2)
您需要命令对象和数据读取器。但是,您将它们放在错误的页面中。
如果您查看Image
控件的属性,您将看到它没有任何Image
属性,因此您无法加载图像并置于控件中。原因是你不能在同一个响应中发送页面和图像,而是浏览器必须在页面加载时单独请求图像。
要从数据库中获取图像并在网页中显示,您需要一个单独的代理页面,您可以使用该页面仅从数据库中获取图像数据。在ImageUrl
控件的Image
属性中,您可以添加"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
答案 1 :(得分:1)
$(".contact-us-campus select").change(function() {
$(this).find("option:selected").each(function() {
var optionValue = $(this).attr("value");
if (optionValue) {
$(".select-box").not("." + optionValue).hide();
$("." + optionValue).show();
$('.regular').slick('refresh');
} else {
$(".select-box").hide();
}
});
}).change();
if ($('.regular').length) {
$('.regular').slick({
infinite: false,
slidesToShow: 4,
slidesToScroll: 1,
prevArrow: '<button type="button" class="slick-prev"><img src="/_assets/images/arrow-left.svg" alt="previous arrow icon"></button>',
nextArrow: '<button type="button" class="slick-next"><img src="/_assets/images/arrow-right.svg" alt="next arrow icon"></button>',
responsive: [{
breakpoint: 2360,
settings: {
slidesToShow: 3
}
}, {
breakpoint: 769,
settings: {
slidesToShow: 2
}
}, {
breakpoint: 576,
settings: {
centerMode: false,
slidesToShow: 1,
slidesToScroll: 1,
adaptiveHeight: false
}
}]
}).on('setPosition', function(event, slick) {
slick.$slides.css('height', slick.$slideTrack.height() + 'px');
});
}