私は楽器予約システムを持っており、入手可能な楽器を探したい。選択された日付の間に使用可能な楽器
選択された日付の間に機器がレンタルテーブルにない場合、すべての機器情報を選択します。
私は、次のコードを使用していますが、それは結果を返していない私は2つのテーブル内にある機器テーブル及びレンタルテーブル、dateoutとreturndateを使用してい
public List<Instrument> availableInstruments(DateTime startDate, DateTime returnDate)
{
//string startDate1 = startDate.ToString("yyyy-MM-dd HH:mm:ss.fff");
//string returnDate1 = returnDate.ToString("yyyy-MM-dd HH:mm:ss.fff");
List<Instrument> availableInstruments = new List<Instrument>();
db.Cmd.Parameters.Add(new SqlParameter("@startDate1", startDate));
db.Cmd.Parameters.Add(new SqlParameter("@returnDate1", returnDate));
db.Cmd.CommandText = "SELECT * FROM InstrumentTBL WHERE InstrumentID NOT IN (SELECT InstrumentTBL.InstrumentID FROM InstrumentTBL IT JOIN RentalTBL DT ON IT.InstrumentID = DT.InstrumentID Where(DT.DateOut <= @startDate1 AND DT.ReturnDate >= @returnDate1) OR (DT.DateOut < @returnDate1 AND DT.ReturnDate >= @returnDate1) OR (@startDate1 <= DT.DateOut AND @returnDate1 >= DT.DateOut))";
db.Rdr = db.Cmd.ExecuteReader();
while (db.Rdr.Read())
{
availableInstruments.Add(getInstrumentFromReader(db.Rdr)); // store into list
}
db.Rdr.Close();
return availableInstruments;
}
(利用可能な5が存在すべきです)レンタルテーブル。
私は別のスレッドからコードを得て、それを採用しようとしましたが、ほとんど成功しませんでした。
助けを歓迎します。
テーブル構造+例データ+期待される出力プラザでこれを試してみてください。私たちに推測させない – Steve
イメージを追加しようとしましたが、何らかの理由で許可されません。ごめんなさい。あなたの返事をありがとう私はより多くの情報で投稿を編集しようとします。 –