Solved

Dataset does not return 1st row?

Posted on 2009-07-14
3
197 Views
Last Modified: 2012-05-07
This might be easy but...
I've opened a CSV file using ADO, filled a DataSet from the result but I'm not getting the first row. Is this a 0 based thing?
cn = New ADODB.Connection

        cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _

                "Data Source=" & strInputFilePath & ";" & _

                "Extended Properties='text;HDR=NO;FMT=Delimited'")

        'create a new recordset

        rsSource = New ADODB.Recordset

        rsSource.CursorLocation = ADODB.CursorLocationEnum.adUseClient

        rsSource.CursorType = ADODB.CursorTypeEnum.adOpenStatic

        rsSource.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic

        rsSource.Open("SELECT * FROM [" & System.IO.Path.GetFileName(strInputFile) & "]", cn)

        rsSource.ActiveConnection = Nothing

        cn.Close()
 

        Dim daDataAdapter As New System.Data.OleDb.OleDbDataAdapter()

        Dim dsDataSet As New DataSet()

        Dim drRow As DataRow

        daDataAdapter.Fill(dsDataSet, rsSource, System.IO.Path.GetFileName(strInputFile))

        

        Dim lngMaxRows As Long = dsDataSet.Tables(0).Rows.Count

        Dim sw As StreamWriter

        Dim dcColumn As DataColumn

       

        sw = New StreamWriter(strOutputFile)

        'Loop through Input file dataset

        For Each drRow In dsDataSet.Tables(0).Rows
 

            For Each dcColumn In dsDataSet.Tables(0).Columns

                If dcColumn.ColumnName.ToString = "SEQ_NO" Then

                    'format this field

                    str = str & drRow("SEQ_NO").ToString("00000000")

                Else

                    str = str & drRow(dcColumn.ColumnName) & Chr(9)

                End If

            Next

            sw.WriteLine(str)

        Next

Open in new window

0
Comment
Question by:wessir
  • 2
3 Comments
 
LVL 41

Expert Comment

by:guru_sami
ID: 24854150
Do you mean your query itself is not returning the first row?
Is the dsDataSet.Tables(0).Rows.Count returning right count?

0
 

Author Comment

by:wessir
ID: 24854546
I don't know if it's not returning all or if the dataset isn't filled properly.  dsDataSet.Tables(0).Rows.Count returns 999 instead of the 1,000 records in the original CSV file.  The output file is missing the first record so it seems the 999 count is correct.
0
 

Accepted Solution

by:
wessir earned 0 total points
ID: 24854589
I added the following line to my Schema.ini file and that took care of it...
ColNameHeader=False
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Computer science students often experience many of the same frustrations when going through their engineering courses. This article presents seven tips I found useful when completing a bachelors and masters degree in computing which I believe may he…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

948 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now