2017-12-27 2 views
-1

私は開始時間と終了時間の2つのフィールドを持っていますが、時間がすでに使用されているかどうかを確認する方法はありますか? MSSQLでどのようにクエリを選択するのですか?VB.NETを使用しているMSSQLですでに使用されている場合、時間範囲を確認するにはどうすればよいですか?

例:

room starttime endtime 
1  1:00  2:00 

私は救うことができないそれらの時間の間に挿入しようとします。事前に

おかげ

cn.Close() 
     cn.Open() 
     Dim query As String = "SELECT * from Settings_Curriculum_Subject_Selected where start_time >= '" & cbStartTime.Text & "'AND end_time <= '" & cbEndTime.Text & "'" 
     Dim cmd As New SqlCommand(query, cn) 
     rdr = cmd.ExecuteReader 
     Dim roomx As Boolean 
     roomx = False 
     While rdr.Read() 
      roomx = True 
     End While 
     rdr.Close() 
+0

あなたが挿入している場所がわかりません - あなたが選択しているだけです。 – JohnyL

+0

2つのフィールドでBETWEENを使用する方法は? –

+1

'cbStartTime.Text'と実行前のものは何ですか? – JohnyL

答えて

0

言ってやるが、私は、次の表を持っている:

create table dbo.TimeTable 
(
    room int null, 
    starttime time null, 
    endtime time null 
); 

insert into dbo.TimeTable values 
(1, '1:00', '2:00'), 
(2, '3:00', '5:00'); 

このコードは、時間が1:30あるroomの選択:

Sub TestDatabase() 
    Dim connStr = "Server=(localdb)\mssqllocaldb;" + 
       "Database=StackOverflow;" + 
       "Trusted_Connection=Yes" 
    Using conn = New SqlConnection(connStr) 
     conn.Open() 
     Dim sql = "SELECT * FROM dbo.TimeTable WHERE @ATime BETWEEN starttime AND endtime;" 
     Using comm = New SqlCommand(sql, conn) 
      Dim t = TimeSpan.Parse("1:30") 
      comm.Parameters.AddWithValue("@ATime", t) 
      Using reader = comm.ExecuteReader() 
       While reader.Read() 
        Console.WriteLine(reader("room")) 
       End While 
      End Using 
     End Using 
    End Using 
End Sub 

あなたが見ることができるようにTimeSpanを使用して時間を取得できます。

+0

あなたはそのコードをVB.NETに変換できますか? –

+0

私は2つのフィールドを持っています。 –

+0

@ JomarkDelRosario VB.NET :) – JohnyL

関連する問題