mysql - 循环在 Sub 中不断重复

标签 mysql vb.net visual-studio-2010

 Public Sub progselector()
    Dim connection As New SqlClient.SqlConnection
    connection.ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\PC83-USER\Documents\Visual Studio 2013\Projects\generic_print_v2\generic_print_v2\programs.mdf;Integrated Security=True;"
    Dim dr As SqlDataReader

    Dim fcount As Integer
    Dim fldnamecombo As String
    Dim command As New SqlCommand
    Dim querycommand As New SqlCommand
    command.Connection = connection
    command.CommandType = CommandType.Text
    command.CommandText = " select field_name from field where program_name = '" & Program_nameComboBox.SelectedItem & "'; select count(field_name) from field where program_name = '" & Program_nameComboBox.SelectedItem & "' ; select field_name,field_value,sort_priority from fieldvalue where program_name ='" & Program_nameComboBox.SelectedItem & "'"
    'THIS SECTION LOADS DATA FROM THE TABLES'
    Try

        connection.Open()
        Field_nameComboBox.Items.Clear()
        dr = command.ExecuteReader


        While dr.Read()

            fldnamecombo = dr(0)

            Field_nameComboBox.Items.Add(fldnamecombo)
            Field_nameComboBox.SelectedItem = fldnamecombo
            Field_nameComboBox.SelectedIndex = 0

        End While

        dr.NextResult()
        While dr.Read
            fcount = dr(0)
            If fcount = 0 Then
                Field_nameComboBox.Text = ""
                Field_nameComboBox.SelectedItem = ""
                Field_valueComboBox.Items.Clear()
                Field_valueComboBox.Text = ""
                Field_valueComboBox.SelectedItem = "'"
                lbl_fld_fieldv.Text = "0"
                Sort_priorityLabel1.Visible = False
                lbl_field_sortprio.Visible = False
                Field_valueComboBox.Visible = False
                lbl_field_fvalues.Visible = False
            End If
            dr.NextResult()
            lbl_field_fldno.Text = fcount
        End While

       While dr.Read()
          txtbx_field_list.Text += dr(0)
       End While

    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        connection.Close()
        SqlConnection.ClearPool(connection)
    End Try

End Sub

嘿嘿,

我目前对 txtbx_field_list 行的显示方式有疑问。结果应该是 T1F T2F T3F

但是,由于某种原因,它只是不断重复。所以T1F T2F T3F T1F T2F T3F T1F T2F T3F。 这在“选定索引更改子”中称为。我必须找个地方休息一下吗?或者我用错误的方式调用它。请帮忙!谢谢!

最佳答案

您不需要使用 nextresult ,为什么要一遍又一遍地循环这些?您只从表中获取一条信息,那么为什么不将该信息添加到数组列表、数组、通用列表或哈希表(无论您喜欢什么)中,然后循环遍历其余信息呢?

一般来说,尝试尽可能少地保持 SQL 连接打开。这么小的循环不会影响任何东西,但是当您开始进行更复杂的拉取和对象引用时,可能需要一段时间。

dim temparr as new arraylist()
While dr.Read()
    temparr.add(dr.item("field_name"))
End While

If temparr.count = 0 Then
   Field_nameComboBox.Text = ""
   Field_valueComboBox.Items.Clear()
   lbl_fld_fieldv.Text = "0"
   Sort_priorityLabel1.Visible = False
   lbl_field_sortprio.Visible = False
   Field_valueComboBox.Visible = False
   lbl_field_fvalues.Visible = False
else
   lbl_field_fldno.Text = temparr.count
   for each l_item as string in temparr
    txtbx_field_list.Text += l_item
    Field_nameComboBox.Items.Add(l_item)
   next  
End If

关于mysql - 循环在 Sub 中不断重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28037591/

相关文章:

php - mysql_query 总是返回空

VB.NET GetObject(,"Excel.Application") 无法运行 Excel

wix - 如何使用完全独立的 .NET 4.0 安装程序制作 WiX 3.5 安装程序?

c# - 如何打印车票/发票

vb.net - 将字符从小写转换为大写,反之亦然 VB.Net

c++ - Microsoft Visual C++ 2010 和 Arduino UNO 通过 USB 之间的串行通信

c# - Visual Studio 可以将 U+20000 Unicode 作为字符处理吗?如何?

mysql - 我应该如何修改我的查询

php - 在 PHP/Mysql 中打印重复记录

mysql - 使用mysql和nodeJs更新多条记录