2016-11-21 17 views
0

は、私はGoogleのチャートを使用してグラフのデータを表示するには、このループを使用しているテーブルからデータを高速に取得する方法はありますか?

問題は、グラフは多くのデータが含まれていることであり、それは疑問があるされているかどうか を貸しなされるのに長い時間を要しますデータベースを早く渡す方法は?

 dRow As Data.DataRow In xdata.Rows 
         If j = 0 Then 
          TempDate = Format(CDate(dRow.Item(0)), "dd/MM/yyyy") 
          MyXML += "[new Date(" & TempDate.Year & "," & TempDate.Month - 1 & ")" 
          j += 1 
         Else 
          TempDate = Format(CDate(dRow.Item(0)), "dd/MM/yyyy") 
          MyXML += ",[new Date(" & TempDate.Year & "," & TempDate.Month - 1 & ")" 
          j += 1 
         End If 
         For colIdx As Byte = 1 To xdata.Columns.Count - 1 
          If colIdx > 0 Then 
           If (dRow.Item(colIdx)).ToString <> Nothing Then 
            MyXML += "," & (dRow.Item(colIdx)).ToString 
           Else 
            MyXML += "," & "0" 
           End If 
          End If 

` 
+0

どのように多くの行を? –

+0

グラフを表示するために何を選択するかによって、数千に達することができます –

+0

データベースからデータをロードしてレンダリングを測定する時間を測定しましたか?何千ものレコードが適切なデータベースを強調すべきではありません。あなたはどちらを使いますか? –

答えて

1

あなたは、文字列の数百を連結しようとしている場合は、StringBuilderを使用する必要があります。 .NETの文字列は不変です。つまり、変更するたびに新しいオブジェクトを作成する必要があります。

Dim sb As New StringBuilder 
For dRow As Data.DataRow In xdata.Rows 
    If j = 0 Then 
     TempDate = Format(CDate(dRow.Item(0)), "dd/MM/yyyy") 
     sb.Append("[new Date(" & TempDate.Year & "," & TempDate.Month - 1 & ")") 
     j += 1 
    Else 
     TempDate = Format(CDate(dRow.Item(0)), "dd/MM/yyyy") 
     sb.Append(",[new Date(" & TempDate.Year & "," & TempDate.Month - 1 & ")") 
     j += 1 
    End If 
    For colIdx As Byte = 1 To xdata.Columns.Count - 1 
     If colIdx > 0 Then 
      If (dRow.Item(colIdx)).ToString <> Nothing Then 
       sb.Append("," & (dRow.Item(colIdx)).ToString) 
      Else 
       sb.Append("," & "0") 
      End If 
     End If 
    Next 
Next 

そして、あなたは、データの解析終わったら:XDATAで

Return sb.ToString 
+0

メソッドは、送信される通常の文字列を返す必要があります。テキストボックス –

+0

StringBuilder.ToStringを使用できます。 StringBuilderを使用して実際の文字列を作成するだけで、ループをかなり高速化することができます。私は私の答えに例を追加します。 – Whitey

+0

私の回答に例を追加しましたが、まだ問題がある場合はお知らせください。 – Whitey

関連する問題