我在WPF应用程序的excel中显示SQL搜索的结果。它最初在列表视图中显示它们,用户可以选择导出到excel的选项,它正常工作。
我遇到的错误是,如果SQL结果中有5个结果并显示在listview中,当我导出到excel时,它只显示4个结果加上SQL表标题......
For i As Integer = 1 To dtMainSQLData.Rows.Count
For j As Integer = 1 To dtMainSQLData.Columns.Count
If i = 1 Then
sheet.Cells(i, j) = dcCollection(j - 1).ToString()
Else
sheet.Cells(i, j) = dtMainSQLData.Rows(i - 1)(j - 1).ToString()
End If
Next
Next
有没有人发现将用于打印出SQL结果的约束循环出现问题
答案 0 :(得分:0)
这是你的问题:
For i As Integer = 1 To dtMainSQLData.Rows.Count
如果您跳过第一个并且在访问商品时将其减少1,则必须前往dtMainSQLData.Rows.Count + 1
就我个人而言,我会从0开始:
For i As Integer = 0 To dtMainSQLData.Rows.Count
For j As Integer = 0 To dtMainSQLData.Columns.Count
If i = 0 Then
sheet.Cells(i + 1, j + 1) = dcCollection(j).ToString()
Else
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Rows(i)(j).ToString()
End If
Next
Next
答案 1 :(得分:0)
在调试csharpwinphonexaml的答案后,我得到了它的工作。我必须添加一个额外的IF来检查它是否在最后一个位置。
For i As Integer = 0 To dtMainSQLData.Rows.Count
For j As Integer = 0 To dtMainSQLData.Columns.Count - 1
If i = 0 Then
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Columns(j).ToString()
ElseIf i = dtMainSQLData.Rows.Count Then
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Rows(0)(j).ToString()
Else
sheet.Cells(i + 1, j + 1) = dtMainSQLData.Rows(i)(j).ToString()
End If
Next
Next