当我在 VB.NET 中修改 SQL 查询时,.tag 返回 Nothing

Posted

技术标签:

【中文标题】当我在 VB.NET 中修改 SQL 查询时,.tag 返回 Nothing【英文标题】:.tag returning Nothing when I modify SQL Query in VB.NET 【发布时间】:2018-05-18 09:24:34 【问题描述】:

我将一些图片框归于数据集中的 .tag 值。

使用我的主要 SQL 查询可以完美运行。当我在某处更改值时添加要运行的不同查询时,.tag 将返回 Nothing。请记住,我的列数完全相同,唯一不同的是我正在过滤一个名称,该名称会将行数从 40 减少到 6。

代码如下:

        If Form10.ComboBox1.Text = "Rock" Then
        Me.Sheet1TableAdapter.FillBy1(Me.Contract_ManagementDataSet2.Sheet1)

    End If

如果 combobox.text 是“Rock”,这称为辅助查询

  For Each PictSlas In Arr_PicSlAch
        For Each PictCom In Arr_PicCom


            Select Case PictSlas.Tag Or PictCom.Tag 
                Case > 4
                    PictSlas.BackColor = Color.Green
                    PictCom.BackColor = Color.Green


                Case > 3
                    PictSlas.BackColor = Color.GreenYellow
                    PictCom.BackColor = Color.GreenYellow

                Case > 2
                    PictSlas.BackColor = Color.Gold
                    PictCom.BackColor = Color.Gold

                Case > 1
                    PictSlas.BackColor = Color.DarkOrange
                    PictCom.BackColor = Color.DarkOrange

                Case > 0
                    PictSlas.BackColor = Color.Red
                    PictCom.BackColor = Color.Red

                Case 0
                    PictSlas.Visible = False
                    PictCom.Visible = False


            End Select

上一段代码作用于SQL查询赋予每张图片的标签。我有一个用于图片框的数组和一个按顺序用数据源中的数据填充它们的变量。

当我使用初始 SQL 查询时,这一切都有效:

SELECT        ID, Vendor, [SLA Achievement] + Commercial + [Operation Stability] + [Cont Improvement] + Partnering AS [Overall Status], [Contract Expiry Date], [SLA Achievement], Commercial, [Operation Stability], 
                     [Cont Improvement], Contract, Partnering

来自 Sheet1

但是当我将查询更改为以下查询时,它停止工作并且所有标签都返回 Nothing 或 Null:

    SELECT        ID, Vendor, [SLA Achievement] + Commercial + [Operation Stability] + [Cont Improvement] + Partnering AS [Overall Status], [Contract Expiry Date], [SLA Achievement], Commercial, [Operation Stability], 
                         [Cont Improvement], Contract, Partnering
FROM            Sheet1
WHERE        (Vendor = 'Rock')

有人知道为什么吗?

【问题讨论】:

【参考方案1】:

由我的查询中的行数引起的问题与我试图填写的表单上的对象数不匹配。

添加:

Try
Catch ex as Exception
End Try

在遍历所有对象并填充它们的循环上,它现在绕过了错误。

可能不是最干净的解决方案,但它解决了我的问题。

【讨论】:

以上是关于当我在 VB.NET 中修改 SQL 查询时,.tag 返回 Nothing的主要内容,如果未能解决你的问题,请参考以下文章

SQL插入语句语法错误VB.net

将 sql 查询填充到 vb.net 上的 datagridview 中

如何从 VB.NET 的视图中获取 SQL 查询

从 VB.NET 复选框选项构建 SQL 查询时遇到问题

在 vb.net 中编写 sql 代码

vb.net SQL 导致 - “必须声明标量变量”