有没有更快的方法从表中检索数据?

时间:2016-11-21 07:12:28

标签: vb.net

我已使用此循环显示使用Google Chart

的图表数据

问题是该图表包含大量数据,需要很长时间才能进行贷款 问题是是否有更快的方式来传递数据库?

     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 

`

1 个答案:

答案 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

当你完成解析数据时:

Return sb.ToString