2012-06-10 20 views
0

我遇到一些緩慢的問題,試圖用這段代碼來刷新我的數據網格, 我想要做的是操縱ACROSS變量列(selltype_code)。另一種方法來優化SQL的結果VB.NET

objConn.Open() 

      Dim sqlConn As String = ("SELECT item_code, item_name, item_quantity, selltype_code, item_selldetail FROM qa_items") 
      Dim objDataAdapter As New MySqlDataAdapter(sqlConn, objConn) 
      Dim ds As New DataSet 

      objDataAdapter.Fill(ds, "items") 

      'Fill datagridview with FOR CICLE 
      For i As Int16 = 0 To ds.Tables("items").Rows.Count - 1 
       If ds.Tables("items").Rows(i).Item("selltype_code") = 1 Then 
        With Me.resultitems_seach_item 
         .Item(3, i).Style.ForeColor = ColorTranslator.FromOle(RGB(39, 74, 109)) 'Color para Precio 
         .Item(3, i).Value = ds.Tables("items").Rows(i).Item("item_selldetail") 'Valor para Precio 
         .Item(4, i).Style.ForeColor = Color.DarkGray 
         .Item(4, i).Value = "---" 
         .Item(5, i).Style.ForeColor = Color.DarkGray 
         .Item(5, i).Value = "---" 
         .Item(6, i).Style.ForeColor = Color.DarkGray 
         .Item(6, i).Value = "---" 
        End With 
       ElseIf ds.Tables("items").Rows(i).Item("selltype_code") = 2 Then 
        With Me.resultitems_seach_item 
         .Item(3, i).Style.ForeColor = Color.DarkGray 
         .Item(3, i).Value = "---" 
         .Item(4, i).Style.ForeColor = Color.DarkGray 
         .Item(4, i).Value = "---" 
         .Item(5, i).Style.ForeColor = ColorTranslator.FromOle(RGB(39, 74, 109)) 'Color para Precio 
         .Item(5, i).Value = ds.Tables("items").Rows(i).Item("item_selldetail") 
         .Item(6, i).Style.ForeColor = Color.DarkGray 
         .Item(6, i).Value = "---" 
        End With 
       ElseIf ds.Tables("items").Rows(i).Item("selltype_code") = 3 Then 
        With Me.resultitems_seach_item 
         .Item(3, i).Style.ForeColor = Color.DarkGray 
         .Item(3, i).Value = "---" 
         .Item(4, i).Style.ForeColor = ColorTranslator.FromOle(RGB(39, 74, 109)) 'Color para Precio 
         .Item(4, i).Value = ds.Tables("items").Rows(i).Item("item_selldetail") 
         .Item(5, i).Style.ForeColor = Color.DarkGray 
         .Item(5, i).Value = "---" 
         .Item(6, i).Style.ForeColor = Color.DarkGray 
         .Item(6, i).Value = "---" 
        End With 
       Else 
        With Me.resultitems_seach_item 
         .Item(3, i).Style.ForeColor = Color.DarkGray 
         .Item(3, i).Value = "---" 
         .Item(4, i).Style.ForeColor = Color.DarkGray 
         .Item(4, i).Value = "---" 
         .Item(5, i).Style.ForeColor = Color.DarkGray 
         .Item(5, i).Value = "---" 
         .Item(6, i).Style.ForeColor = ColorTranslator.FromOle(RGB(39, 74, 109)) 'Color para Precio 
         .Item(6, i).Value = ds.Tables("items").Rows(i).Item("item_selldetail") 
        End With 
       End If 

      Next i 

      objConn.Close() 
+3

請勿選擇_all_表中的項目。它越大,你的代碼看起來越慢。介紹分頁。 – Oded

+0

爲什麼不使用後臺工作組件來執行冗長的工作以避免用戶的遲緩行爲 – sarepta

回答

0

確保關閉網格列的所有自動設置大小設置。這大大減緩了取回。在執行刷新之前將Grid AutoresizeMode設置爲NONE。