sql - 从数据库-SQL/VB.Net 设置超链接和图像 URL
问题描述
我有一个表,它总是只有 3 行,每周更新。我需要阅读它们并填充 3 个 ImageUrl 和 3 个关联的超链接。但是,我收到了错误:
System.IndexOutOfRangeException: hyperlink1
我可能离这里很远,因为我还在学习,但我们开始了..我只是用..来选择它们
SELECT
(SELECT hyperlink As hyperlink1 WHERE productNo=1),
(SELECT imageUrl As imageUrl1 WHERE productNo=1),
(SELECT hyperlink As hyperlink2 WHERE productNo=2),
(SELECT imageUrl As imageUrl2 WHERE productNo=2),
(SELECT hyperlink As hyperlink3 WHERE productNo=3),
(SELECT imageUrl As imageUrl3 WHERE productNo=3)
FROM tblAmazonProducts 结束
然后是VB代码..
Public Function GetAmazonProducts()
Dim DBConnectAm As New DBConn
Using db As DbConnection = DBConnectAm.Conn("DBConnectionString")
Dim cmd As SqlCommand = DBConnectAm.Command(db, "SelectAmazonProducts")
'cmd.Parameters.Add(New SqlParameter("productNo", SqlDbType.Int, ParameterDirection.Input)).Value = productNo
db.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
hypAmazonProduct1.navigateurl=DR("hyperlink1")
imghypAmazonProduct1.ImageUrl=DR("imageUrl1")
hypAmazonProduct2.navigateurl=DR("hyperlink2")
imghypAmazonProduct2.ImageUrl=DR("imageUrl2")
hypAmazonProduct3.navigateurl=DR("hyperlink3")
imghypAmazonProduct3.ImageUrl=DR("imageUrl3")
DR.Close()
DR = Nothing
cmd.Dispose()
cmd = Nothing
db.Dispose()
db.Close()
End Using
End Function
解决方案
我将 Do While 放回原处,然后在每一行中调整 SELECT 语句,如下所示:
SELECT
(SELECT hyperlink FROM tblAmazonProducts WHERE productNo=1)As hyperlink1,
(SELECT imageUrl FROM tblAmazonProducts WHERE productNo=1) As imageUrl1,
(SELECT hyperlink FROM tblAmazonProducts WHERE productNo=2) As hyperlink2,
(SELECT imageUrl FROM tblAmazonProducts WHERE productNo=2) As imageUrl2,
(SELECT hyperlink FROM tblAmazonProducts WHERE productNo=3) As hyperlink3,
(SELECT imageUrl FROM tblAmazonProducts WHERE productNo=3) As imageUrl3
VB..
Dim DBConnectAm As New DBConn
Using db As DbConnection = DBConnectAm.Conn("DBConnectionString")
Dim cmd As SqlCommand = DBConnectAm.Command(db, "SelectAmazonProducts")
'cmd.Parameters.Add(New SqlParameter("productNo", SqlDbType.Int, ParameterDirection.Input)).Value = productNo
db.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
While DR.Read
hypAmazonProduct1.navigateurl=DR("hyperlink1")
imghypAmazonProduct1.ImageUrl=DR("imageUrl1")
hypAmazonProduct2.navigateurl=DR("hyperlink2")
imghypAmazonProduct2.ImageUrl=DR("imageUrl2")
hypAmazonProduct3.navigateurl=DR("hyperlink3")
imghypAmazonProduct3.ImageUrl=DR("imageUrl3")
End While
DR.Close()
DR = Nothing
cmd.Dispose()
cmd = Nothing
db.Dispose()
db.Close()
End Using
推荐阅读
- d3.js - d3.js 我怎样才能得到只是年
- azure - Azure B2C 身份验证和管理员登录
- angular - 如何禁用垫选择列表中的按钮
如果未选择 mat-list-option? - sql - Oracle SQL 折叠数据行
- jsp - Jsp——两页合一
- php - php 文件在实时服务器上显示错误
- javascript - 未捕获的 SyntaxError:空行中有意外的标识符?
- matlab - 如何在 MATLAB 上创建一个 if 语句,将低于某个阈值的像素替换为 NaN?
- c++ - 在运行时以编程方式检测 CPU 架构
- powershell - 在 60 分钟或更新的 Windows 服务器之间复制文件