下面我有一个程序,读取一个表的内容,并在写出来之前对它们进行格式化。我有两个数组temp和values,因为表中的某些列的描述太长,跳到下一行id,它的最大字符数为80。
这是我的问题,当数据库中有多条记录时,我的程序工作正常。但是,当只有一个记录时,它就逃逸了。拜托,有人帮我解释一下,为什么数据库表中只有一条记录时,这个方法不起作用。
Try
Using sw As New IO.StreamWriter(filepath, False)
Dim values(SQLReader.FieldCount) As Object
Dim temp(SQLReader.FieldCount) As Object
Dim first As Boolean = True
While SQLReader.Read()
'Dim values(SQLReader.FieldCount) As Object
SQLReader.GetValues(values)
If values(12) IsNot DBNull.Value Then
values(12) = Convert.ToDateTime(values(12)).ToString("yyyy-MM-dd HH:mm:ss:fff")
values(15) = Convert.ToDateTime(values(15)).ToString("yyyy-MM-dd HH:mm:ss:fff")
End If
values(1) = Convert.ToDateTime(values(1)).ToString("yyyy-MM-dd HH:mm:ss:fff")
values(8) = Convert.ToDateTime(values(8)).ToString("yyyy-MM-dd HH:mm:ss:fff")
values(13) = values(13).ToString.Replace(",", " ")
values(13) = values(13).ToString.Replace(vbLf, " ")
If first Then
values.CopyTo(temp, 0)
SQLReader.Read()
SQLReader.GetValues(values)
If values(12) IsNot DBNull.Value Then
values(12) = Convert.ToDateTime(values(12)).ToString("yyyy-MM-dd HH:mm:ss:fff")
values(15) = Convert.ToDateTime(values(15)).ToString("yyyy-MM-dd HH:mm:ss:fff")
End If
values(1) = Convert.ToDateTime(values(1)).ToString("yyyy-MM-dd HH:mm:ss:fff")
values(8) = Convert.ToDateTime(values(8)).ToString("yyyy-MM-dd HH:mm:ss:fff")
values(13) = values(13).ToString.Replace(",", " ")
values(13) = values(13).ToString.Replace(vbLf, " ")
first = False
End If
If values(14) Is DBNull.Value Then
values(14) = 1
End If
If CInt(values(14)) > 1 Then
temp(13) = temp(13).ToString() & values(13).ToString
Else
sw.WriteLine(String.Join(",", temp))
values.CopyTo(temp, 0)
Repaircounter += 1
End If
End While
暂无答案!
目前还没有任何答案,快来回答吧!