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,037

HOME > .NET Framework > Forum > การหาค่า id ที่มากที่สุด ฐานข้อมูล MSAccess



 

การหาค่า id ที่มากที่สุด ฐานข้อมูล MSAccess

 



Topic : 040957



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



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




ฐานข้อมูล MSAccess



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-03-29 09:04:20 By : oasiis View : 1902 Reply : 23
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

Code
SELECT MAX(ID) As MaxID FROM table







Date : 2010-03-29 09:17:06 By : webmaster
 


 

No. 2



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



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


แล้วจะนำค่ามาใส่ textbox ยังไงครับ?
Date : 2010-03-29 09:30:14 By : oasiis
 

 

No. 3

Guest


ใช้ sql command ของคุณวินนั่นแหละ executescalar ออกมา

แปลงเป็น integer มาใส่ตัวแปร จะแสดงที่ textbox ก็แปลงเป็น string แล้วใส่ใน property text ของ textbox

มีในบทความหมดแหละ ไปหาอ่านเอาก่อนง่ายๆ
Date : 2010-03-29 09:50:41 By : tungman
 


 

No. 4



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



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


ผมลองหาค่ามากที่ได้แล้ว และถ้าต้องการ +1 ไม่ทราบว่าต้องเพิ่มในส่วนไหนครับ

Code (VB.NET)
Private Sub frmchances_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ts_save.Enabled = False
        ts_cancel.Enabled = False

        Dim fd As New fader
        fd.FadeIn(Me, 0.25)

        sw.Reset()
        sw.Start()

        E_readsonly()

        lbl_idchance.BackColor = Color.FromArgb(0, 0, 0, 0)
        lbl_namechance.BackColor = Color.FromArgb(0, 0, 0, 0)

        strConn = DBConnString.strConn

        Conn = New OleDbConnection()
        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConn
            .Open()
        End With

        sb.Append("SELECT MAX(id_chance) As maxid FROM tbchance")
        Dim sqlmx_id As String
        sqlmx_id = sb.ToString()

        Com = New OleDbCommand()
        Dim dr As OleDbDataReader
        With Com
            .CommandText = sqlmx_id
            .CommandType = CommandType.Text
            .Connection = Conn
            dr = .ExecuteReader()
            While dr.Read
                txt_idchance.Text = CStr((dr.Item("maxid")))
            End While
        End With

        showdata()
        formatdgvchance()

        sw.Stop()
        processtime = sw.ElapsedMilliseconds / 1000
        _toolstriplabel.Text = "เวลาที่ใช้ : " & processtime.ToString("0.0000") & " วินาที"

    End Sub

Date : 2010-03-29 10:56:09 By : oasiis
 


 

No. 5



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



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


SELECT MAX(id_chance)+1 As maxid FROM tbchance

เพิ่มใน SQL เลย ง่ายดี
Date : 2010-03-29 11:18:41 By : zongpr
 


 

No. 6



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



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


ถ้าในตารางไม่มีข้อมูล

มัน orrer บรรทัดที่ 37 ครับ

**** ผมอยากให้ถ้าไม่มีข้อมูล ให้เป็น 1 อ่ะครับ

Code (VB.NET)
Private Sub frmchances_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ts_save.Enabled = False
        ts_cancel.Enabled = False

        Dim fd As New fader
        fd.FadeIn(Me, 0.25)

        sw.Reset()
        sw.Start()

        E_readsonly()

        lbl_idchance.BackColor = Color.FromArgb(0, 0, 0, 0)
        lbl_namechance.BackColor = Color.FromArgb(0, 0, 0, 0)

        strConn = DBConnString.strConn

        Conn = New OleDbConnection()
        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConn
            .Open()
        End With

        sb.Append("SELECT MAX(id_chance)+1 As maxid FROM tbchance")
        Dim sqlmx_id As String
        sqlmx_id = sb.ToString()

        Com = New OleDbCommand()
        Dim dr As OleDbDataReader
        With Com
            .CommandText = sqlmx_id
            .CommandType = CommandType.Text
            .Connection = Conn
            dr = .ExecuteReader()
            While dr.Read
                txt_idchance.Text = CStr((dr.Item("maxid")))
            End While
        End With

        showdata()
        formatdgvchance()

        sw.Stop()
        processtime = sw.ElapsedMilliseconds / 1000
        _toolstriplabel.Text = "เวลาที่ใช้ : " & processtime.ToString("0.0000") & " วินาที"

    End Sub


Date : 2010-03-29 15:38:45 By : oasiis
 


 

No. 7

Guest


ก็บอกให้ใช้ executescalar ไง ไม่มีข้อมูลจะได้เท่ากับ 0
Date : 2010-03-29 15:48:55 By : tungman
 


 

No. 8



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



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


ทำยังไงครับ
Date : 2010-03-29 16:10:23 By : oasiis
 


 

No. 9

Guest


Code (VB.NET)
'Dim dr As OleDbDataReader
With Com
    .CommandText = sqlmx_id
    .CommandType = CommandType.Text
    .Connection = Conn

    'dr = .ExecuteReader()
    'While dr.Read
        'txt_idchance.Text = CStr((dr.Item("maxid")))
    'End While
End With

Dim Result As Integer = CInt(Com.ExecuteScalar())

Date : 2010-03-29 16:35:25 By : tungman
 


 

No. 10



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



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


SELECT IIF((COUNT([id_chance])=0),1,MAX([id_chance])+1) As [maxid] FROM [tbchance]

ความหมายของ IIF((COUNT([id_chance])=0),1,MAX([id_chance])) คือ
ตรวจสอบว่า (COUNT([id_chance])=0) >> นับ Record ของ field [id_chance] ถ้าไม่มีข้อมูลจะมีค่าเป็น 0
ถ้ามีข้อมูลก็จะเท่ากับจำนวน record ค่ะ

IIF เป็นการตรวจสอบเงื่อนถ้า Record count จากข้างต้นเป็น 0 จะให้ค่า 1
แต่ถ้าไม่ใช่ 0 จะให้ค่า MAX([id_chance])+1 ค่ะ

ส่วนการใช้ EXECUTESCALAR ในบอร์ดนี้ยกตัวอย่างมาหลายครั้งแล้ว ลองค้นหาดูนะคะ

กำโพสพร้อมๆกับพี่ตึ๋งเลย
Date : 2010-03-29 16:37:54 By : blurEye
 


 

No. 11



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



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


ไม่ได้อ่ะครับ
Date : 2010-03-29 16:39:50 By : oasiis
 


 

No. 12



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



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


ไม่ได้อ่ะ ลองทั้ง 2 วิธีล่ะครับ ไม่ได้อ่ะ
Date : 2010-03-29 16:48:09 By : oasiis
 


 

No. 13



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



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


ทำไมไม่ได้ละคะ ไม่ได้ตรงไหน เมื่อไหร่ ยังไง
Date : 2010-03-29 17:11:37 By : blurEye
 


 

No. 14



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

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

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


หัด debug ด้วยก็ดีนะครับ ผมว่าคงใช้ visual studio มันง่ายออก จิ้มๆ ตรงที่จะ debug แล้ว run แล้ว f10 f11 ก็ว่ากันไป สงสัยตรงไหน เอาเมาส์ชี้

ลองดูนะ
Date : 2010-03-29 18:11:24 By : plakrim
 


 

No. 15



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



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


มัน error บรรทัดที่ 35 อ่ะครับ

Code (VB.NET)
Private Sub ts_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ts_add.Click
        ActionFlag = "ADD"
        'ClearAllData()

        Conn = New OleDbConnection()
        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConn
            .Open()
        End With

        Dim sb1 As New StringBuilder

        'sb1.Append("SELECT MAX(id_chance)+1 As maxid FROM tbchance")
        sb1.Append("SELECT IF((COUNT([id_chance])=0),1,MAX([id_chance])+1) As maxid FROM [tbchance]")
        Dim sqlmx_id As String
        sqlmx_id = sb1.ToString()

        Com = New OleDbCommand()
        Dim dr1 As OleDbDataReader
        With Com
            .CommandText = sqlmx_id
            .CommandType = CommandType.Text
            .Connection = Conn
            dr1 = .ExecuteReader()
            While dr1.Read
                txt_idchance.Text = CStr((dr1.Item("maxid")))
            End While
        End With

        txt_idchance.ReadOnly = True
        txt_namechance.ReadOnly = False

        ts_add.Enabled = False
        ts_edit.Enabled = False
        ts_save.Enabled = True
        ts_cancel.Enabled = True
        ts_del.Enabled = False

        txt_namechance.Focus()
    End Sub




ถ้าใช้โค้ดนี้ มันจะ error บรรทัดที่ 13

Code (VB.NET)
'Dim dr As OleDbDataReader
With Com
    .CommandText = sqlmx_id
    .CommandType = CommandType.Text
    .Connection = Conn

    'dr = .ExecuteReader()
    'While dr.Read
        'txt_idchance.Text = CStr((dr.Item("maxid")))
    'End While
End With

Dim Result As Integer = CInt(Com.ExecuteScalar())


Date : 2010-03-30 08:28:59 By : oasiis
 


 

No. 16



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



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


Code (VB.NET)
Private Sub ts_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ts_add.Click
        ActionFlag = "ADD"
        'ClearAllData()

        Conn = New OleDbConnection()
        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConn
            .Open()
        End With

        Dim sb1 As New StringBuilder

        'sb1.Append("SELECT MAX(id_chance)+1 As maxid FROM tbchance")
        sb1.Append("SELECT IF((COUNT([id_chance])=0),1,MAX([id_chance])+1) As maxid FROM [tbchance]")
        Dim sqlmx_id As String
        sqlmx_id = sb1.ToString()

        Com = New OleDbCommand()
        Dim dr1 As OleDbDataReader
        With Com
            .CommandText = sqlmx_id
            .CommandType = CommandType.Text
            .Connection = Conn
            dr1 = .ExecuteReader()
            While dr1.Read
                txt_idchance.Text = CStr((dr1.Item("maxid")))
            End While
        End With

        txt_idchance.ReadOnly = True
        txt_namechance.ReadOnly = False

        ts_add.Enabled = False
        ts_edit.Enabled = False <<< access control ข้าม thread ไม่ได้ครับ คุณต้องใช้ event-delegate
        ts_save.Enabled = True
        ts_cancel.Enabled = True
        ts_del.Enabled = False

        txt_namechance.Focus()
    End Sub

Code (VB.NET)
'Dim dr As OleDbDataReader
With Com
    .CommandText = sqlmx_id
    .CommandType = CommandType.Text
    .Connection = Conn

    'dr = .ExecuteReader()
    'While dr.Read
        'txt_idchance.Text = CStr((dr.Item("maxid")))
    'End While
End With

Dim Result As Integer = CInt(Com.ExecuteScalar())

<<< เป็นไปได้ สองแบบ คือ
เขียนใหม่แบบ ถ้ามันฟ้อง error น่ะ
Dim Result As Integer
Result  = CInt(Com.ExecuteScalar())

กับ

command เป็น select command คุณต้องเอา data adapter มารับครับ ExecuteScalar ไม่ถูกต้องนัก



เวลาโพสข้อความ เอา error มาแป๊ะด้วยจะดีกว่าครับ จะเข้าใจง่ายกว่านี้ แล้วอยากให้คุณหัดใช้ breakpoint - debug ให้มากๆ สังเกตและจดจำรูปแบบที่ถูกต้องไปเยอะๆ แล้วคุณจะเก่งเอง
Date : 2010-03-30 08:50:27 By : numenoy
 


 

No. 17



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



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


งง ครับ ช่วยอธิบายหน่อย
Date : 2010-03-30 09:02:37 By : oasiis
 


 

No. 18

Guest


โจทย์นี้ง่ายนะ ไม่รู้ทำไมทำไม่ได้ เลยสดให้เลยเพราะไม่ได้ลง vb ไว้

Code (VB.NET)
Private Sub frmchances_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ts_save.Enabled = False
        ts_cancel.Enabled = False

        Dim fd As New fader
        fd.FadeIn(Me, 0.25)

        sw.Reset()
        sw.Start()

        E_readsonly()

        lbl_idchance.BackColor = Color.FromArgb(0, 0, 0, 0)
        lbl_namechance.BackColor = Color.FromArgb(0, 0, 0, 0)

        strConn = DBConnString.strConn

        Conn = New OleDbConnection(strConn)

        If Conn.State = ConnectionState.Open Then
            Conn.Close()
        End If

        strCom As String = "SELECT MAX([id_chance]) As [maxid] FROM [tbchance]"

        Com = New OleDbCommand(strCom, Conn)

        Try
            Conn.Open()
            Dim Result As Integer = CInt(Com.ExecuteScalar())
            Conn.Close()

            txt_idchance.Text = Convert.ToString(Result + 1)
        Catch ex As Exception
            txt_idchance.Text = ex.Meaasge
        End Try

        showdata()
        formatdgvchance()

        sw.Stop()
        processtime = sw.ElapsedMilliseconds / 1000
        _toolstriplabel.Text = "เวลาที่ใช้ : " & processtime.ToString("0.0000") & " วินาที"

    End Sub

Date : 2010-03-30 09:38:20 By : tungman
 


 

No. 19



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



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


มันเข้าบรรทัดนี้

txt_idchance.Text = ex.Meaasge

ตลอดเลยอ่ะครับ?
Date : 2010-03-30 09:47:12 By : oasiis
 


 

No. 20

Guest


แล้วมันเขียนว่าไงล่ะครับ

เพราะนั่นก็คือสิ่งที่ error มันบอกว่าอะไรก็แก้ตามนั้น
Date : 2010-03-30 10:06:26 By : tungman
 


 

No. 21



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



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


Quote:
แล้วมันเขียนว่าไงล่ะครับ

เพราะนั่นก็คือสิ่งที่ error มันบอกว่าอะไรก็แก้ตามนั้น


มันไม่ error แต่มันเข้า txt_idchance.Text = ex.Meaasge

ค่าใน txt_idchance.Text มันขึ้นว่า The connection was not closed. The connection's current state is open.
Date : 2010-03-30 10:11:06 By : oasiis
 


 

No. 22

Guest


กลุ้มใจ ถ้ามันไม่ error มันไม่เข้าไปทำงานที่ catch หรอกครับ

Quote:
The connection was not closed. The connection's current state is open.


นี่แหละ error ไปเปิด connection ซ้อนกันอะดิ ตรวจดูดีๆ ว่าไปเปิด connection แล้วยังไม่ปิดไว้ที่ไหน

แล้วอีกอย่างหาหนังสือมาอ่านเยอะๆ นะ เขียนโค้ดได้มั่วมาก error ตรงไหนยังไม่รู้
Date : 2010-03-30 10:33:29 By : tungman
 


 

No. 23



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



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


ได้แล้วครับ คุณ tungman

ขอบคุณมากกับคำแนะนำ พอดีผมพึ่งลองเขียนได้ไม่กี่วันเอง

ผมก็พบมีหนังสือน่ะครับ แต่ไม่มีเกี่ยวกับที่ผมกำลังทำ
Date : 2010-03-30 10:49:44 By : oasiis
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การหาค่า id ที่มากที่สุด ฐานข้อมูล MSAccess
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่