конфликт времени и времени ожидания в системе планирования с использованием vb.net - PullRequest
0 голосов
/ 07 июня 2019

Как я могу конфликтовать время и тайм-аут с этим кодом в моей кнопке сохранения?

Пример: хранилище данных в ms доступе, например, 7:00-8:00, тогда я сохраню другое, например, 7:30-8:30, это должно быть конфликт, но в моей программе это будет сохранено. Пожалуйста, мне нужна помощь.

Dim scmd As New OledbCommand
with scmd 
    .connection = cn
    .commandtext = "select * from deptsched where.        [dtimein] <= #" & combo1.text & "# and [dtimeout]  >= #" &     combo2.text "# "
end with

Dim srdr As OleDbDataReader
srdr = scmd.ExecuteReader
If srdr.HasRows Then
msg("conflict")
exit sub

end if

with cmds
.connection = cn
.commandtext = insert into deptsched values('"& c1.text.   &"', '"& c2.text &"')"
.executenonquery()
end with


 msg(" save")

1 Ответ

0 голосов
/ 07 июня 2019

По правде говоря, ваш оператор Select не имеет особого смысла для меня, но вот код, который вы можете использовать для выполнения ваших операторов SQL. По крайней мере, это даст вам образец для подражания. Вам нужно будет проверить типы данных в базе данных и соответственно скорректировать код.

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim RecordCount As Integer
    'Keep your data objects local so you can be sure they are closed and disposed.
    ' A Using...End Using block ensures this even if there is an error
    Using cn As New OleDbConnection("Your Connection String")
        'Pass the command text and the connection directly to the constructor of the command
        'Always use Parameters to avoid Sql injection
        'If all you need is a count of records then ask for Count no all the data
        Using scmd As New OleDbCommand("Select Count(*) From deptsched where [dtimein] <= @TimeIn And  [dtimeout]  >= @TimeOut;", cn) ' #" & combo1.text & "# and#" & combo2.text "# ")
            scmd.Parameters.Add("@TimeIn", OleDbType.Date).Value = CDate(combo1.Text)
            scmd.Parameters.Add("@TimeOut", OleDbType.Date).Value = CDate(combo2.Text)
            cn.Open()
            RecordCount = CInt(scmd.ExecuteScalar)
        End Using
    End Using
    If RecordCount > 0 Then
        MessageBox.Show("conflict")
        Exit Sub
    End If
    Using cn As New OleDbConnection("Your Connection String")
        Using cmds As New OleDbCommand("insert into deptsched values(@Field1, @Field2);", cn)
            cmds.Parameters.Add("@Field1", OleDbType.VarChar).Value = c1.text
            cmds.Parameters.Add("@Field2", OleDbType.VarChar).Value = c2.text
            cn.Open()
            cmds.ExecuteNonQuery()
        End Using
    End Using
    MessageBox.Show("Save")
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...