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 > VB.net ComboBox Event SelectedIndexChanged เกิด Error There is no row at position 0



 

VB.net ComboBox Event SelectedIndexChanged เกิด Error There is no row at position 0

 



Topic : 134911



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



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




Code (VB.NET)
Private Sub frmCustomer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        
        Dim CustID As Integer = 0
        Dim CustName As String = ""
        Dim dt As DataTable = Nothing

        dt = _QueryAsDataTable($"SELECT CustID,custName FROM tblCustomer WHERE custName = '{cboName.Text}'") 'เป็นเมทตอท เอา sql เป็น datatable
        CustID = dt.Rows(0).Item(0)
        CustName = dt.Rows(0).Item(1)        
    End Sub

ทำงานได้เป็นปกติดี

แต่ถ้าเอาอันนี้ตัดแล้วไปวางใส่ใน event ของComboBox
Code (VB.NET)
 Private Sub cboName_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboName.SelectedIndexChanged
       Dim CustID As Integer = 0
        Dim CustName As String = ""
        Dim dt As DataTable = Nothing

        dt = _QueryAsDataTable($"SELECT CustID,custName FROM tblCustomer WHERE custName = '{cboName.Text}'") 'เป็นเมทตอท เอา sql เป็น datatable
        CustID = dt.Rows(0).Item(0)
        CustName = dt.Rows(0).Item(1)        
    End Sub


มี error แจ้งเตือนว่า There is no row at position 0
ทั้งๆที่ ใน ฐานข้อมูลของ Access มีข้อมูลอยู่



Tag : .NET, Ms Access, VB.NET, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2020-02-22 10:50:11 By : huatro View : 900 Reply : 4
 

 

No. 1



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



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

ใน Access มี แต่ DataTable ไม่มี
ลอง คอมเมนต์บรรทัด 7-8 แล้วเช็คด้วย

MessageBox.Show("จำนวนแถวใน DataTable: " + dt.rows.Count.ToString());

วิธีแก้ เปลี่ยน query ใหม่ครับ








ประวัติการแก้ไข
2020-02-22 12:17:22
2020-02-22 12:23:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-02-22 12:14:35 By : PhrayaDev
 


 

No. 2



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



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


มีการเกิด Error บรรทัดที่ 7 ของ cboName_SelectedIndexChanged

แต่ผมคิดว่า น่าจะเป็นที่
ลำดับการโหลดข้อมูลของ Visual Studio
การทำงานของ event ของ cboName_SelectedIndexChanged ก่อน
แล้วค่อย มาทำงานของ frmCustomer_Load
เลยทำให้ข้อมูล ใน cboName_SelectedIndexChanged ไม่มี

น่าจะเป็นตามที่ผมคิดหรือเปล่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-02-22 15:03:32 By : huatro
 

 

No. 3



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



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

ถ้าใช้ VS >= 2015(VB14) เรื่อง String Interpolation ก็ไม่ใช่ปัญหา
ส่วนที่คุณสงสัยก็อาจเป็นไปได้ (แต่โดยปกติ event ของ Form จะถูกโหลดก่อนของ Control เว้นแต่มีการปรับลำดับการ raise event ใน InitializeComponent())

ลองดูค่า cboName.Text ในอีเวนต์ SelectedIndexChanged ตอน debug ว่า "ว่าง" หรือไม่
ถ้าไม่ข้อสงสัยของคุณผิด

แต่ผมยังเชื่อว่า ในเคสของคุณต้องเปลี่ยนคำสั่ง/วิธีการ query


ประวัติการแก้ไข
2020-02-22 17:12:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-02-22 17:08:39 By : PhrayaDev
 


 

No. 4



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



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

ลองDebug ดูครับ บรรทัดที่ Error
ผมเดาๆว่ามันคงจะวนเข้ามาสองรอบ Event SelectedIndexChanged
ถ้าวนสองรอบ ก็ลองดักเงื่อนไง bool ดูครับ


ปล.ผมเคยเจอเคสแบบนี้ จากโปรแกรมคนอื่น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-02-24 08:27:46 By : 2127832830566218
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : VB.net ComboBox Event SelectedIndexChanged เกิด Error There is no row at position 0
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่