2013-08-14 2 views
0

Может кто-то пожалуйста, Помощь- Раньше я хранил это в базе данныхVb.Net - Использование многомерного массива

File Name - Order.csv 
File Arrival Time - 03:00 
File Arrival End time - 04:00 

Но теперь мне нужно, чтобы переместить это из базы данных и используя многомерный массив для хранения значений а затем перебирать их, чтобы проверить, не приступили ли файлы.

У меня есть код для проверки наличия файла, но im new для vb.net, поэтому не сейчас, как хранить это в многомерном массиве, а затем прокручивать его.

Пожалуйста, помогите.

+0

может вы плз дать Alittle больше понимания проблемы, например, текущий код у являются используя, сколько полей вы ожидаете от БД, потому что ответ Rex выглядит довольно хорошо – Manny265

ответ

2

, если вы действительно хотите использовать массивы, вы можете попробовать что-то вроде:

Dim data(,,) As String 
ReDim data(10, 10, 10) ' three dimensions 
For i As Integer = 0 To data.GetUpperBound(0) 
    For j As Integer = 0 To data.GetUpperBound(1) 
     For k As Integer = 0 To data.GetUpperBound(2) 
      ' do your stuff here 
     Next 
    Next 
Next 

Но, почему бы не использовать объект и список вместо этого? что-то вроде:

Public Class MyFile 
    Property Name As String 
    Property ArrivalTime As DateTime 
    Property EndTime As DateTime 
End Class 

' then store the data in a list(of MyFile): 
Public Class Test 
    Sub LoadingData() 
     Dim myData = New List(Of MyFile) 
     Using conn As New SqlClient.SqlConnection("your connection string here") 
      Using cmd As New SqlClient.SqlCommand() 
       cmd.Connection = conn 
       cmd.CommandText = "SELECT top 100 Name, ArrivalTime, EndTime FROM yourTable" 
       conn.Open() 
       Using rdr As SqlClient.SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection) 
        Dim namePos = rdr.GetOrdinal("Name") 
        Dim timePos = rdr.GetOrdinal("Time") 
        Dim endTimePos = rdr.GetOrdinal("EndTime") 
        While rdr.Read() 
         myData.Add(New MyFile With {.Name = rdr.GetString(namePos), 
                .ArrivalTime = rdr.GetDateTime(timePos), 
                .EndTime = rdr.GetDateTime(endTimePos)}) 
        End While 
       End Using 
      End Using 
     End Using 

     For Each item In myData 
      ' Do whatever you like with each item 
      Console.WriteLine(String.Format("Name: {0}, Arrival Time: {1:yyyy-MM-dd HH:mm:ss}, End Time: {2:yyyy-MM-dd HH:mm:ss}", 
              item.Name, 
              item.ArrivalTime, 
              item.EndTime)) 
     Next 
    End Sub 
End Class 

- просто быстрый образца, не испытанный, вы можете настроить в соответствии с вашими потребностями) ...

+0

Мне нужно добавить код в пакет SSIS Package - Script с помощью Vb.Net. Как им новые, вы можете предложить вам указать код для каждого LOOP также пожалуйста ... –

+0

- см. Измененный – Rex

Смежные вопросы