我创建了一个网页,员工可以上传Excel xlsx文档进行处理,如果符合要求,则会返回相同的文档,并填写某些关键单元格。它有效,但我对它运行的速度不满意。需要几分钟才能完成2500行。
它像这样运行: 用户上传文档 - > 服务器端打开excel文档并逐行进行 - > 如果当前行的第31列!= 10,则连接到SQL并根据第5列执行查询。 - > 来自查询的结果进入该行第35列。 - > 下一行。冲洗并重复。 - > 完成后,将文件返回给用户。
虽然这有效,但它也很慢。有没有人对更好的方法有任何想法?
For n = 2 To excelWorkSheet.Rows.Count
Dim thing As String = excelWorkSheet.Cells(n, 5).Value
'only until empty row
If excelWorkSheet.Cells(n, 5).Value = "" Then
Exit For
End If
If excelWorkSheet.Cells(n, 31).Value <> "10" Then
strSQL = "EXEC sp_Lookup_Type " & thing
cmd.CommandText = strSQL
cmd.Connection = cn
rdrSQL = cmd.ExecuteReader()
While rdrSQL.Read()
If Not IsDBNull(rdrSQL("TYPE")) Then
excelWorkSheet.Cells(n, 35).Value = rdrSQL("TYPE")
Else
excelWorkSheet.Cells(n, 35).Value = "NO DATA"
End If
End While
cmd.Dispose()
rdrSQL.Close()
End If
Next
cn.Close()
答案 0 :(得分:1)
我的目标是减少SQL调用的次数。
选项#1:如果查询表中的项目数量足够小......
选项#2:如果您无法预先缓存所有项目......