Как включить прогрессбар в цикле - PullRequest
0 голосов
/ 10 июля 2019

Привет, я немного новичок с индикатором выполнения, поэтому я не был уверен, как можно включить его в свой цикл. То, что я пытаюсь сделать, это то, что в каждом цикле индикатор выполнения будет увеличивать свое значение или прогресс в зависимости от того, сколько процентов моя функция уже выполнила. Спасибо, если вы могли бы помочь мне добавить несколько кодов здесь. Заранее большое спасибо.

вот цикл, над которым я работаю:

If reader.HasRows Then
    While reader.Read()
        DataTableName = TextBox1.Text
        ID1 = reader.Item("MotorSN").ToString
        ID2 = reader.Item("StationNo").ToString
        ID3 = reader.Item("WU_NestNo").ToString
        ID4 = reader.Item("PT_TimeIn").ToString
        ID5 = reader.Item("PT_NestNo").ToString
        ID6 = reader.Item("PT_Q_Std_Bellmouth_0").ToString
        ID7 = ""
        ID8 = ""
        ID9 = ""
        ID10 = ""
        ID11 = ""
        ID12 = ""
        Note1 = ""
        Note2 = ""
        sDate = ""
        sTime = ""
        wd = S2K_SetDataTableVariableValue(DataTableName, dValue, ID1, ID2, ID3, ID4, ID5, ID6, ID7, ID8, ID9, ID10, ID11, ID12, Note1, Note2, sDate, sTime)
    End While

    MessageBox.Show("Data has been written To the table")
End If

1 Ответ

0 голосов
/ 10 июля 2019

Подобно тому, который я реализовал, это довольно просто.

  • 1. Поместите индикатор выполнения где-нибудь на форме.
  • над циклом for добавьте количество строк в вашей базе данных, чтобы что-то вроде datatable.rows.count или аналогичное
  • примените его к переменной, а затем напишите ProgressBar1.Maximum = datatablerowcount
  • Установите размершага к 1 на вашем индикаторе прогресса ProgressBar1.Step = 1
  • Затем просто добавьте непосредственно перед вашим end while добавлением этого ProgressBar1.PerformStep()

Что этов основном это так, устанавливает полное значение индикатора выполнения равным количеству элементов, которые вы должны прочитать, а затем приближается на 1 шаг к максимальному значению при каждом чтении строки.

edit

Dim row_count As Integer = datatable.Rows.Count '(or however you can)
ProgressBar1.Maximum = row_count 
ProgressBar1.Step = 1

If reader.HasRows Then 
    While reader.Read()
        DataTableName = TextBox1.Text
        ID1 = reader.Item("MotorSN").ToString
        ID2 = reader.Item("StationNo").ToString
        ID3 = reader.Item("WU_NestNo").ToString
        ID4 = reader.Item("PT_TimeIn").ToString
        ID5 = reader.Item("PT_NestNo").ToString
        ID6 = reader.Item("PT_Q_Std_Bellmouth_0").ToString
        ID7 = ""
        ID8 = ""
        ID9 = ""
        ID10 = ""
        ID11 = ""
        ID12 = ""
        Note1 = ""
        Note2 = ""
        sDate = ""
        sTime = ""
        wd = S2K_SetDataTableVariableValue(DataTableName, dValue, ID1, ID2, ID3, ID4, ID5, ID6, ID7, ID8, ID9, ID10, ID11, ID12, Note1, Note2, sDate, sTime)

        progressbar1.performstep()
    End While

    MessageBox.Show("Data has been written To the table")
End If

РЕДАКТИРОВАТЬ Не уверен на 100%, из чего вы читаете и т. Д. Но да, просто получите счетчик строк из того, что вы читаете, с помощью устройства чтения и установите его как row_count

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...