2015-01-20 3 views
0
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 

Хэя,Loop продолжает повторяться в Суб

я в настоящее время возникли проблемы с каким образом txtbx_field_list линия появляется. Результаты должны быть t1f T2f T3F

Однако, по какой-то причине он просто твердит itself.So t1f T2f T3F t1f T2f T3F t1f T2f T3F. Это вызывается в выбранном индексе, измененном Sub. Нужно ли мне где-то перерыть? Или я называю это неправильным способом. Пожалуйста помоги! Благодаря!

ответ

0

Вам не нужно использовать nextresult и почему вы зацикливаете их снова и снова? Вы только захватываете одну часть информации из таблиц, поэтому почему бы не добавить эту информацию в arraylist, массив, общий список или хеш-таблицу (независимо от того, что вы предпочитаете), а затем циклически перебираете это для остальных?

Как правило, старайтесь держать соединение 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 
+0

Благодарим за помощь в упрощении кода! Раньше меня учили использовать dr.read. Однако txtbx_field_list.text + = l_item все еще выводит слишком много результатов. Он работает, если я вызываю sub при загрузке, но как только я поместил его в выбранный индексный чейнджер, он повторяет результаты несколько раз. – YongJ

+0

А мне это удалось! Оказывается, мне пришлось поставить txtbx_field_list.clear, если он был пуст. Благодаря ! – YongJ

Смежные вопросы