Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,028

HOME > .NET Framework > Forum > ติดตรงเงื่อนไข เรื่องเวลา ช่วยดูให้หน่อยครับ ผมทำ Dropdownlist 3อัน ติดตรงที่เงื่อนไข ถ้าเลือก วัน/เดือน/ปี



 

ติดตรงเงื่อนไข เรื่องเวลา ช่วยดูให้หน่อยครับ ผมทำ Dropdownlist 3อัน ติดตรงที่เงื่อนไข ถ้าเลือก วัน/เดือน/ปี

 



Topic : 035561



โพสกระทู้ ( 31 )
บทความ ( 0 )



สถานะออฟไลน์




ผมทำ Dropdownlist 3อัน ติดตรงที่เงื่อนไข ถ้าเลือก วัน/เดือน/ปี ที่เป็นอดีตก็จะไม่บันทึกลงฐานข้อมูล
โค้ดนี้ยังไม่กำหนดเงื่อนไขนะครับใช้ได่ไม่เออเร่อ
Code
(VB.NET)

Imports System.data
Imports System.IO
Imports System.Data.SqlClient
Partial Class Default4
    Inherits System.Web.UI.Page
    Public Sub GenerateYear(ByVal NextYear As Integer)
        Dim ThisYear As Integer = Date.Now().Year
        Dim dt As DataTable = New DataTable("GenerateYear")
        Dim dtc As DataColumn
        Dim dtr As DataRow
        dtc = New DataColumn()
        dtc.DataType = System.Type.GetType("System.Int64")
        dtc.ColumnName = "GenYear"
        dt.Columns.Add(dtc)
        For i As Integer = ThisYear To NextYear
            dtr = dt.NewRow()
            dtr(0) = i
            dt.Rows.Add(dtr)
        Next
        Me.ddlYear.DataSource = dt
        Me.ddlYear.DataBind()
    End Sub
    Public Sub GenerateMonth()
        Dim dt As DataTable = New DataTable("GenerateMonth")
        Dim dtc As DataColumn
        Dim dtr As DataRow
        dtc = New DataColumn()
        dtc.DataType = System.Type.GetType("System.Int64")
        dtc.ColumnName = "GenMonth"
        dt.Columns.Add(dtc)
        For i As Integer = 1 To 12
            dtr = dt.NewRow()
            dtr(0) = i
            dt.Rows.Add(dtr)
        Next
        Me.ddlMonth.DataSource = dt
        Me.ddlMonth.DataBind()
    End Sub
    Public Sub GenerateDay(ByVal TotalDay As Integer)
        Dim dt As DataTable = New DataTable("GenerateDay")
        Dim dtc As DataColumn
        Dim dtr As DataRow
        dtc = New DataColumn()
        dtc.DataType = System.Type.GetType("System.Int64")
        dtc.ColumnName = "GenDay"
        dt.Columns.Add(dtc)
        For i As Integer = 1 To TotalDay
            dtr = dt.NewRow()
            dtr(0) = i
            dt.Rows.Add(dtr)
        Next
        Me.ddlDay.DataSource = dt
        Me.ddlDay.DataBind()
    End Sub
    Protected Sub ddlMonth_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlMonth.SelectedIndexChanged
        GenerateDay(Date.DaysInMonth(Me.ddlYear.SelectedValue, Me.ddlMonth.SelectedValue))
    End Sub
    Protected Sub ddlYear_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlYear.SelectedIndexChanged
        GenerateDay(Date.DaysInMonth(Me.ddlYear.SelectedValue, Me.ddlMonth.SelectedValue))
    End Sub
    Protected Sub ddlDay_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlDay.SelectedIndexChanged
        Me.lblSeleceDate.Text = _
        Me.ddlDay.SelectedItem.Text & "/" _
        & Me.ddlMonth.SelectedItem.Text & "/" _
        & Me.ddlYear.SelectedItem.Text
    End Sub
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Me.Page.IsPostBack Then
            Dim DateNow As Date
            DateNow = Date.Now()
            GenerateDay(Date.DaysInMonth(DateNow.Year, DateNow.Month))
            GenerateMonth()
            GenerateYear(2020)
            Me.ddlDay.SelectedValue = DateNow.Day
            Me.ddlMonth.SelectedValue = DateNow.Month
            Me.ddlYear.SelectedValue = DateNow.Year
        End If
    End Sub
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = ""
        Dim connection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
        Dim conn As New SqlConnection(connection)
        Try
            conn.Open()
            Dim comm As String = "INSERT INTO CH (CH_IN) "
            comm &= " VALUES ('" & lblSeleceDate.Text & "')"
            Dim command As New SqlCommand(comm, conn)
            command.ExecuteNonQuery()
            conn.Close()
            Response.Redirect("Default2.aspx")
        Catch ex As Exception
            Label1.Text = "พบปัญหาเกี่ยวกับข้อมูลโปรดตรวจสอบ"
        End Try
    End Sub
End Class




Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-12-10 04:00:14 By : nunghangbeer View : 1577 Reply : 8
 

 

No. 1



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เอา value ที่ได้จาก dropdownlist ทั้ง 3 ตัวมารวมกัน

DropDownList1.SelectedItem.Value + "/" + DropDownList2.SelectedItem.Value + "/" + DropDownList3.SelectedItem.Value

จากวันก็ convert เป็น DateTime โดยใช้ DateTime.Parse(string วันที่ที่เลือก) เอาไปเปรียบเทียบกับวันปัจจุบัน

(DateTime.Now) ด้วย CompareTo() แบบนี้

int check = DateTime.Parse(string วันที่ที่เลือก).CompareTo(DateTime.Now)

ค่าที่ได้ ถ้าเท่ากับ 0 แสดงว่าวันเดียวกัน

น้อยกว่า 0 แสดงว่า เป็นอดีต

มากกว่า 0 แสดงว่า เป็นอนาคต






Date : 2009-12-10 11:57:46 By : tungman
 


 

No. 2



โพสกระทู้ ( 31 )
บทความ ( 0 )



สถานะออฟไลน์


ยังไม่ค่อยเข้าใจครับ ช่วยยกตัวอย่างโค้ดได้มั้ยครับ รบกวนด้วย
Date : 2009-12-11 03:09:27 By : nunghangbeer
 

 

No. 3



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


Code (VB.NET)
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = ""
        Dim connection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
        Dim conn As New SqlConnection(connection)

        If DateTime.Parse(ddlDay.SelectedItem.Value & "/" & ddlMonth.SelectedItem.Value & "/" & ddlYear.SelectedItem.Value).CompareTo(DateTime.Now) > 0  Then
           Try
               conn.Open()
               Dim comm As String = "INSERT INTO CH (CH_IN) "
               comm &= " VALUES ('" & lblSeleceDate.Text & "')"
               Dim command As New SqlCommand(comm, conn)
               command.ExecuteNonQuery()
               conn.Close()
               Response.Redirect("Default2.aspx")
           Catch ex As Exception
               Label1.Text = "พบปัญหาเกี่ยวกับข้อมูลโปรดตรวจสอบ"
           End Try
       End If
    End Sub

Date : 2009-12-11 09:25:32 By : tungman
 


 

No. 4



โพสกระทู้ ( 31 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากครับ
Date : 2009-12-11 14:42:31 By : nunghangbeer
 


 

No. 5

Guest


แล้วถ้าฐานข้อมูล เราเป็น datetime ไม่ใช่ string แบบcodeข้างบน
จะต้องแก้ตรงไหนครับ
Date : 2009-12-11 23:15:35 By : game
 


 

No. 6



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ก็ส่งเป็น string ไปเหมือนเดิมแหละครับ แต่ต้องมีอะไรบอกว่าส่งไปเป็น format ไหน

อย่างข้างบนถ้าเขาใช้ type เป็น datetime หรือ smalldatetime

รับรอต้องมี case ที่เกิด error แน่นอน เพราะมันไม่รู้หรอกว่าเราส่งไปเป็นแบบ dd/mm/yyyy

หรือ mm/dd/yyyy เอาจากตัวอย่างข้างบนแล้วกันนะ

Code
INSERT INTO CH (CH_IN) VALUES ('" & lblSeleceDate.Text & "')


แก้เป็นแบบนี้

Code
Insert Into [CH] ([CH_IN]) Values (Convert(SmallDateTime, '" & lblSeleceDate.Text & "', 103))


เลข 103 บอกมันว่าเราส่งไปแบบ dd/mm/yyyy แล้วมันจะเก็บในรูปแบบไหนก็ช่างมัน

เพราะตอนนี้มันรู้จักแล้วว่าอะไรอยู่ตำแหน่งไหน
Date : 2009-12-12 09:13:20 By : tungman
 


 

No. 7

Guest


ลองเปลี่ยน type เป็น datetime และแก้ไขโค้ดแล้ว มีปัญหาerror
สาเหตุที่ต้องเปลี่ยนเป็น datetime เพราะว่าต้องการนำวัน/เดือน/ปี2ค่ามาคำนวนหาผลต่างเป็นวัน
แต่ถ้าเราเก็บเป็น string เหมือนเดิม เวลาจะคำนวณค่อยดึงมาแปลงค่าเป็นdatetime หรือ integer
จะเป็นไปได้มั้นค่ะ
Date : 2009-12-12 15:03:11 By : game
 


 

No. 8



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


อ๋อ นั้นแหละถูกแล้ว

เวลาเอาค่าไปคำนวณน่ะต้องเปลี่ยนเป็น DateTime สิ

แต่พอคำนวณเสร็จจะเอาเก็บลง Db ก็แปลงเป็น string อีกที
Date : 2009-12-12 16:15:27 By : tungman
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ติดตรงเงื่อนไข เรื่องเวลา ช่วยดูให้หน่อยครับ ผมทำ Dropdownlist 3อัน ติดตรงที่เงื่อนไข ถ้าเลือก วัน/เดือน/ปี
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่