dreinmann
asked on
Progress Bar
How can I show a Progress Bar and attach it to a DataSet.Fill? vb.net please
Me.Service_Time_by_Day_Rep ortTableAd apter.Fill (Me.ServTi meDataSet1 .Service_T ime_by_Day _Report)
Me.Service_Time_by_Day_Rep
no events are trigerred while the dataset is filling so you can't have a progress bar.
Are you using 2005? If so, you can break the Fill down to steps by using the overloaded Fill method that takes start index plus number of records to fill.
Bob
Bob
ASKER
Yes, using VS 2005. Can you show an example of what you're saying?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Really nice comments from Bob...added this one to my favorites _-;)
vbturbo
vbturbo
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Tried: Service_Time_by_Day_Report TableAdapt er.Fill(Se rvTimeData Set1, 9, 15, "Service_Time_by_Day_Repor t") ....this is not working.
Says for the DataSet - 'Value of Type 'System.Data.DataSet' cannot be converted to 'WindowsApplication1.ServT imeDataSet .Service_T ime_by_Day _ReportDat aTable'.
Says for the rest - Too many arguments.
Can I use dbDataAdapter for database that reside within the program. (not on a sql server)?
Says for the DataSet - 'Value of Type 'System.Data.DataSet' cannot be converted to 'WindowsApplication1.ServT
Says for the rest - Too many arguments.
Can I use dbDataAdapter for database that reside within the program. (not on a sql server)?
ASKER
I created an OleDbDataAdapter, did a BindingSource and wrote this code: (but, still not getting lines 10-15 on DataTableReader) ...what's wrong?
ServTimeDataSet1.Tables.Ad d("Service _Time_by_D ay_Report" )
AddHandler ServTimeDataSet1.Tables(0) .RowChange d, AddressOf Progress
servAdapter.Fill(ServTimeD ataSet1, 9, 15, "Service_Time_by_Day_Repor t")
Me.Cursor = Cursors.AppStarting
lblServTimeTag.Text = "Processing Service Times..."
lblServTimeTag.Refresh()
Dim sw1 As StreamWriter
sw1 = New StreamWriter("G:\Operation s\Transpor tation\07 Service Time Import\Service Time by Day Report.txt")
Dim dt As New DataTable
dt = Me.ServTimeDataSet1.Servic e_Time_by_ Day_Report
Dim rv As DataTableReader
rv = dt.CreateDataReader
tsbProgress.Style = ProgressBarStyle.Continuou s
tsbProgress.Value = 0
tsbProgress.Maximum = CInt(Me.ServTimeDataSet1.S ervice_Tim e_by_Day_R eport.Coun t())
tsbProgress.PerformStep()
Using reader As DataTableReader = dt.CreateDataReader()
Threading.Thread.Sleep(200 0)
Do While reader.Read()
tsbProgress.PerformStep()
sw1.WriteLine(reader(0).To String() & " " _
& reader(1).ToString() & " " & reader(2).ToString() & " " _
& reader(3).ToString())
Loop
Threading.Thread.Sleep(100 0)
Application.DoEvents()
End Using
sw1.Close()
Private Sub Progress(ByVal sender As Object, ByVal e As System.Data.DataRowChangeE ventArgs)
tsbProgress.Value += 1
End Sub
ServTimeDataSet1.Tables.Ad
AddHandler ServTimeDataSet1.Tables(0)
servAdapter.Fill(ServTimeD
Me.Cursor = Cursors.AppStarting
lblServTimeTag.Text = "Processing Service Times..."
lblServTimeTag.Refresh()
Dim sw1 As StreamWriter
sw1 = New StreamWriter("G:\Operation
Dim dt As New DataTable
dt = Me.ServTimeDataSet1.Servic
Dim rv As DataTableReader
rv = dt.CreateDataReader
tsbProgress.Style = ProgressBarStyle.Continuou
tsbProgress.Value = 0
tsbProgress.Maximum = CInt(Me.ServTimeDataSet1.S
tsbProgress.PerformStep()
Using reader As DataTableReader = dt.CreateDataReader()
Threading.Thread.Sleep(200
Do While reader.Read()
tsbProgress.PerformStep()
sw1.WriteLine(reader(0).To
& reader(1).ToString() & " " & reader(2).ToString() & " " _
& reader(3).ToString())
Loop
Threading.Thread.Sleep(100
Application.DoEvents()
End Using
sw1.Close()
Private Sub Progress(ByVal sender As Object, ByVal e As System.Data.DataRowChangeE
tsbProgress.Value += 1
End Sub
Is it a Service or standalone program?
ASKER
StandAlone - the Access database is imported into the VS project and a couple tables from it are linked to outside sources.
I think I'm close, but maybe need to do some changes in the DataTableReader? That's what worked when I was using the 'TableAdapter', but now that I'm trying to go through dbDataAdapter do I have to use something different?
I think I'm close, but maybe need to do some changes in the DataTableReader? That's what worked when I was using the 'TableAdapter', but now that I'm trying to go through dbDataAdapter do I have to use something different?
ASKER
Also, I wasn't getting exactly lines 9-15. Whatever I set the upper to, I would get from 0 to the upper. In this case 0 to 15 records...I changed it to 12-20 and got records 0-20. Know why?
The first number is the starting record, and the second number is the max record. If you set the starting record at 12, and the max length at 20, you should have gotten 12-32.
Bob
Bob
ASKER
Final code...thanks for all the help. Ended up having to change the 'dt = Me.ServTimeDataSet1.Servic e_Time_by_ Day_Report ' to 'dt = ServTimeDataSet1.Tables("S ervice_Tim e_by_Day_R eport")'
lblServTimeTag.Text = "Loading Service Times, could take up to 1 minute..."
lblServTimeTag.Refresh()
tsbProgress.Maximum = 2000
Me.Cursor = Cursors.WaitCursor
ServTimeDataSet1.Tables.Ad d("Service _Time_by_D ay_Report" )
AddHandler ServTimeDataSet1.Tables("S ervice_Tim e_by_Day_R eport").Ro wChanged, AddressOf Progress
servAdapter.Fill(ServTimeD ataSet1, 9, 15, "Service_Time_by_Day_Repor t")
'TODO: This line of code loads data into the 'ServTimeDataSet1.Service_ Time_by_Da y_Report' table. You can move, or remove it, as needed.
'Me.Service_Time_by_Day_Re portTableA dapter.Fil l(Me.ServT imeDataSet 1.Service_ Time_by_Da y_Report)
Me.Cursor = Cursors.AppStarting
lblServTimeTag.Text = "Processing Service Times..."
lblServTimeTag.Refresh()
Dim sw1 As StreamWriter
sw1 = New StreamWriter("G:\Operation s\Transpor tation\07 Service Time Import\Service Time by Day Report.txt")
Dim dt As New DataTable
dt = ServTimeDataSet1.Tables("S ervice_Tim e_by_Day_R eport")
Dim rv As DataTableReader
rv = dt.CreateDataReader
tsbProgress.Style = ProgressBarStyle.Continuou s
tsbProgress.Value = 0
tsbProgress.Maximum = CInt(Me.ServTimeDataSet1.S ervice_Tim e_by_Day_R eport.Coun t())
tsbProgress.PerformStep()
Using reader As DataTableReader = dt.CreateDataReader()
Threading.Thread.Sleep(200 0)
Do While reader.Read()
tsbProgress.PerformStep()
sw1.WriteLine(reader(0).To String() & " " _
& reader(1).ToString() & " " & reader(2).ToString() & " " _
& reader(3).ToString())
Loop
Threading.Thread.Sleep(100 0)
Application.DoEvents()
End Using
sw1.Close()
lblServTimeTag.Text = "Loading Service Times, could take up to 1 minute..."
lblServTimeTag.Refresh()
tsbProgress.Maximum = 2000
Me.Cursor = Cursors.WaitCursor
ServTimeDataSet1.Tables.Ad
AddHandler ServTimeDataSet1.Tables("S
servAdapter.Fill(ServTimeD
'TODO: This line of code loads data into the 'ServTimeDataSet1.Service_
'Me.Service_Time_by_Day_Re
Me.Cursor = Cursors.AppStarting
lblServTimeTag.Text = "Processing Service Times..."
lblServTimeTag.Refresh()
Dim sw1 As StreamWriter
sw1 = New StreamWriter("G:\Operation
Dim dt As New DataTable
dt = ServTimeDataSet1.Tables("S
Dim rv As DataTableReader
rv = dt.CreateDataReader
tsbProgress.Style = ProgressBarStyle.Continuou
tsbProgress.Value = 0
tsbProgress.Maximum = CInt(Me.ServTimeDataSet1.S
tsbProgress.PerformStep()
Using reader As DataTableReader = dt.CreateDataReader()
Threading.Thread.Sleep(200
Do While reader.Read()
tsbProgress.PerformStep()
sw1.WriteLine(reader(0).To
& reader(1).ToString() & " " & reader(2).ToString() & " " _
& reader(3).ToString())
Loop
Threading.Thread.Sleep(100
Application.DoEvents()
End Using
sw1.Close()