noob_noob Ответов: 0

Как я могу "повторно заполнить" свою форму в VB.NET


Привет! У меня есть система массового обслуживания, которая находится в разработке, у меня есть сервер и пять рабочих станций, которые управляют окном массового обслуживания, которое отображает номер следующего в строке. Теперь у меня возникла проблема с системой массового обслуживания, когда контроллер нажимает кнопку "Далее", сервер не отвечает ни на одну из рабочих станций. Мой вопрос заключается в том, как я могу каким-то образом "обновить" форму, которая заставит последнего клиента в очереди появиться в окне очереди. Спасибо!

В настоящее время я использую VS2012 и SQLServer2014.

приведенный ниже код-это то, что я уже пробовал:

Что я уже пробовал:

Private Sub Timer7_Tick(sender As Object, e As EventArgs) Handles Timer7.Tick
    Timer7.Interval = 5000
    Timer7.Enabled = True
    Try
        Dim scn As New SqlConnection
        Dim scm As New SqlCommand
        Dim str1 As String
        str1 = "Server=MISKRISTIAN-PC\HMO_OPD;Database=HMO_OPD_QUEUE;User Id=sa;Password=sa;"
        scn.ConnectionString = str1
        scm.Connection = scn
        scn.Open()
        scm.CommandText = "SELECT * from ConCon"
        scm.CommandText = "SELECT * from AppCon"
        scm.CommandText = "SELECT * from PrioCon"
        scm.CommandText = "SELECT * from RetCon"
        scm.ExecuteNonQuery()
        scn.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    Refresh()

End Sub

CHill60

Единственная команда из вашего кода, которая может быть выполнена, - это "SELECT * from RetCon" ...
Как вы заполняете свое окно в первую очередь?
О - и прекратите использовать sa и определенно не публикуйте свой пароль на открытом сайте!

noob_noob

Можете ли вы дать мне идею, которая может выполнить все четыре из них?
Система заполняет окно, вызывая данные, которые были сгенерированы, когда пользователь нажимает кнопку, которая генерирует билет из системы.

эта система не генерирует конфиденциальную информацию, об этом нечего беспокоиться.

CHill60

- Вы можете дать мне идею, которая может привести в исполнение все четыре из них?..попробуйте использовать scm.ExecuteNonQuery() для каждый из них.
"Система заполняет окно ..." - как! Код! Если вы можете заполнить окно один раз, то вы должны быть в состоянии обновить его, повторно используя по крайней мере часть кода
"эта система не генерирует конфиденциальную информацию, об этом нечего беспокоиться". - я не беспокоюсь, но вы должны быть. Вы дали хакерам все, что им нужно знать, чтобы скомпрометировать вашу систему, притвориться вами, удалить вашу базу данных и т. д.

noob_noob

Private Sub AppNxt_Click(sender As Object, e As EventArgs) Handles AppNxt.Click
        'next
        Dim strHostName1 As String
        strHostName1 = System.Net.Dns.GetHostName()

        If (wapp.Text = 0) Then
            MessageBox.Show("There are no queues as of now!")

        ElseIf (Queue.Label7.Text < FrmNumApp.NumApp.Text) Then
            Dim sqlconn5 As New SqlConnection
            Dim sqlquery5 As New SqlCommand
            Dim connString5 As String
            wapp.Text = CStr(CDbl(wapp.Text) - 1)
            Try
                connString5 = "Server=MISKRISTIAN-PC\HMO_OPD;Database=HMO_OPD_QUEUE;User Id=sa;Password=sa;"
                sqlconn5.ConnectionString = connString5
                sqlquery5.Connection = sqlconn5
                sqlconn5.Open()
                sqlquery5.CommandText = "INSERT INTO AppCon([Number],[Counter])VALUES(@Number,@Number)"
                sqlquery5.Parameters.AddWithValue("@Number", Queue.Label7.Text)
                sqlquery5.Parameters.AddWithValue("@Counter", Queue.Label19.Text)
                sqlquery5.ExecuteNonQuery()
                sqlconn5.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

            Queue.Label7.Text = CStr(CDbl(Queue.Label7.Text) + 1)
            Queue.Label11.Text = "0"
            My.Computer.Audio.Play(My.Resources.DoorBell, AudioPlayMode.Background)
            Dim speaker As New SpeechSynthesizer()
            Dim speak As New Prosody()
            'tts
            speak.Duration = 3
            speaker.Rate = -5
            speaker.Volume = 100
            speaker.Speak("Now serving number " + Queue.Label7.Text)
            speaker.SelectVoiceByHints(VoiceGender.Male)
            Queue.Label19.Text = strHostName1
        End If

    End Sub


это функция кнопки "Далее"

noob_noob

функция сохраняет данные в базе данных и отображает их в форме с именем Queue(это форма,которая отображает обслуживаемый номер).

CHill60

Использование ссылки ответа на комментарий уведомляет участника о том, что вы пытаетесь ответить.
Эта субподрядка сбивает с толку - должна ли она отображать очередь или вставлять данные. Разделение забот!
Что вы пытаетесь "освежить" - здесь нет ничего, что упоминало бы таблицы ConCon, PrioCon или RetCon

0 Ответов