 |
|
[.NET]
ขอความช่วยเหลือ เรียกห้องออกมาโชว์เฉพาะห้องที่ยังไม่เคยถูกจอง ครับ |
|
 |
|
|
 |
 |
|
ตาราง

หน้าเวป

ผมมีสองตาราง จอยกันครับ คือตารางแรกเป็นตารางห้อง และตารางสองเป็นตารางจอง
โดยจะให้ห้องที่ออกมา คือห้องที่ไม่ได้ถูกจอง โดยเช็คจากวันที่เลือก คือเช็คอิน กับ เช็คเอาท์
นี่ Code ของผมครับ
Code (ASP)
01. Dim strcon As SqlConnection = New SqlConnection( "Data Source=JACKIE-PC;Initial Catalog=rsfab;Integrated Security=True" )
02. Dim s As SqlCommand = New SqlCommand( "select DISTINCT Test_Home.A_Home as 'บ้านเลขที่', Test_Home.Detail as'รายละเอียด', Test_Home.Limited as'พักสูงสุด', Test_Home.Rate as'ราคาต่อคืน', Test.D_In as'วันเข้า', Test.D_Out as'วันออก' from Test_Home INNER JOIN Test ON Test.A_Home = Test_Home.A_Home WHERE (NOT (D_In BETWEEN '" + dain.ToString( "yyyy-MM-dd" ) + "' AND '" + daout.ToString( "yyyy-MM-dd" ) + "')) AND (NOT (D_Out BETWEEN '" + dain.ToString( "yyyy-MM-dd" ) + "' AND '" + daout.ToString( "yyyy-MM-dd" ) + "')) ORDER BY Test_Home.A_Home " , strcon)
03. Dim resda As SqlDataAdapter = New SqlDataAdapter
04. resda.SelectCommand = s
05. strcon.Open()
06. Dim resds As DataSet = New DataSet
07. resda.Fill(resds)
08. strcon.Close()
09. GridView1.DataSource = resds
10. GridView1.DataBind()
ปัญหา คือถ้าในเบสผมไม่มีข้อมูลอยู่มันก็ไม่รู้จะเช็คเงื่อนไข อย่างไร ห้องมันก็ไม่ออกมาโชว์ครับ
ส่วนปัญหาที่สองคือ ซึ่งในเบสตอน นี้มี ห้อง 1,2,3,4,5,6 ถ้าผมบันทึกรายการจองใหม่ ห้อง 1 ซ้ำเข้าไป แต่คนละวัน มันก็จะโชว์ห้อง1ด้วยอยู่ดี เพราะมันเข้าเงื่อนไข ผมควรทำอย่างไรดีครับ
Tag : ASP.NET, Ms SQL Server 2008, Web (ASP.NET), VB.NET
|
|
 |
 |
 |
 |
Date :
2012-05-20 16:50:50 |
By :
jjASP |
View :
1083 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือใน เบส ถ้ามีรายการจอง ห้องที่ hom00001 วันที่ 17/5 ถึง 19/5
และผมบันทึกรายการจองเข้าไปใหม่ เป็น hom00001 วันที่ 21/5 ถึง 23/5
ซึ่งขั้นตอนต่อไป ผม select ห้องว่างออกมาโดยเลือกวันที่ 21/5 ถึง 23/5 เหมือนกัน ซึ่งวันที่นี้ห้องที่1 มีรายการจองไปแล้วไม่ควรออกมาแต่มันออกมาโชว์ด้วย ควรปรับอย่างไรดีครับ
ซึ่ง ในโคดผม เงื่อนไขมันคือ เอาห้องที่ไม่ถูกเลือกวันที่ระหว่างนั้นออกมาโชว์ แต่ห้อง1 มันมี 2 อัน อันแรกมันก็เข้าเงื่อนไขเหมือนกันมันเลยออกมาโชว์ด้วยผมควรแก้ไขอย่างไรดีครับ
|
 |
 |
 |
 |
Date :
2012-05-20 16:58:10 |
By :
jjASP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ของผมมีที่ทำเป็น Stored Procedure ไว้นะครับ
ไม่รู้ว่าพอจะช่วยได้มั้ยแต่วัตถุประสงค์เดียวกันครับ คือหาห้องที่ว่างออกมา
เดี๋ยววันนี้จะลองตามดูเรื่อย ๆ นะครับ
01. set ANSI_NULLS ON
02. set QUOTED_IDENTIFIER ON
03. go
04.
05.
06. ALTER PROCEDURE [dbo].[SPWeb_GetAvailableRoomList]
07. @Plant VARCHAR(5),
08. @StartTime DATETIME,
09. @EndTime DATETIME,
10. @UserLV INT
11. AS
12. BEGIN
13. SET NOCOUNT ON;
14. SELECT * FROM meetingroom_v2 WHERE roomlocation=@Plant AND roomstatus=
15. SELECT room FROM roomreservation_v2 WHERE location=@Plant AND
16. (starttime BETWEEN CONVERT(VARCHAR(19),@StartTime,120) AND CONVERT(VARCHAR(19),@EndTime,120) OR
17. endtime BETWEEN CONVERT(VARCHAR(19),@StartTime,120) AND CONVERT(VARCHAR(19),@EndTime,120)))
18. END
|
 |
 |
 |
 |
Date :
2012-05-21 10:04:23 |
By :
Nebula |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แจ่มครับ
|
 |
 |
 |
 |
Date :
2012-05-21 20:43:55 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|