#vb.net #visual-studio
#vb.net #visual-studio
Вопрос:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Me.TextBox1.Text = "hello"
Dim connectionString As String = "Data Source=192.168.0.199;Initial Catalog=NEWDATABASE;Persist Security Info=True;User ID=admin;Password=123456"
Dim connection As New SqlConnection(connectionString)
connection.Open()
Dim sql As String = "SELECT TOP (" amp; topvalue amp; ") * FROM [NEWDATABASE].[dbo].[MachineParameter] WHERE status = '0' ORDER BY Id ASC"
Dim dataadapter As New SqlDataAdapter(sql, connection)
Dim ds As New DataSet()
dataadapter.Fill(ds, "table")
DataGridViewtx.DataSource = ds
DataGridViewtx.DataMember = "table"
connection.close()
end sub
Комментарии:
1. Привет, не могли бы вы уточнить, что вам нужно, пожалуйста? Таймер не «запущен», это триггер для извлечения и отображения данных. Спасибо
2.
Application.DoEvents
?3. @preciousbetine : Вы НИКОГДА, НИКОГДА не должны использовать или даже предлагать
Application.DoEvents()
. Он используется внутренними методами фреймворка при отображении модальных диалоговых окон. Это не предназначено для использования в качестве обходного пути для поддержания адаптивного пользовательского интерфейса вместо использования реальной многопоточности или библиотеки параллельных задач. — Это может показаться грубым, ноDoEvents()
этим чрезвычайно злоупотребляют, и при неправильном использовании (что всегда так) вызывает больше проблем, чем решает.4. когда этот таймер тикает, он запускает этот код и многие другие для извлечения и отправки данных и т.д. поэтому я хочу отобразить некоторый текст типа «данные передаются» или что-то в этом роде, но он не отображается таким образом ..: (
5. Если для извлечения данных требуется много времени, это заблокирует весь пользовательский интерфейс и предотвратит его перерисовку. Если это так, вам нужно заглянуть в многопоточность или библиотеку параллельных задач, поскольку код нужно будет запускать в фоновом режиме, чтобы он не зависал в вашем пользовательском интерфейсе.