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

HOME > .NET Framework > Forum > สอบถามการ Join สองตาราง VB.net กับฐานข้อมูล Mysql จะทำอย่างไร



 

สอบถามการ Join สองตาราง VB.net กับฐานข้อมูล Mysql จะทำอย่างไร

 



Topic : 112072



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



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




แสดง 1 ตาราง

Code (VB.NET)
        Dim dsUser As New DataSet
        Dim _condb As New ConnectionDBClass ' ประกาศ ตัวแปร เพื่อเรียกใช้งาน คลาส ConnectionDBClass
        Dim sb As New StringBuilder

        Me._condb.connectDB()
        sb.Remove(0, sb.Length)
        sb.Append(" SELECT * FROM  tbCustomers  ")
        Me._condb.da = New MySqlDataAdapter(sb.ToString(), Me._condb.con)
        Me._condb.da.Fill(dsUser, "tbCustomers ")
 
        TbCustomersDataGridView.DataSource = dsUser.Tables("tbCustomers")

อันนี้แสดงได้ปรกติครับ


แล้วถ้าต้องการ จอยสองตารางจะเขี่ยนอย่างไรได้บ้างครับ

Code (VB.NET)
sb.Append(" SELECT * FROM  tbCustomers inner join tbstep on WHERE  tbCustomers.Step_id = tbstep.Step_id  ")


ผมจะเขียนได้อย่างไรอะครับ



Tag : .NET, MySQL, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-10-21 10:11:04 By : nankittiphat View : 2589 Reply : 25
 

 

No. 1



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



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


sb.Append(" SELECT * FROM tbCustomers inner join tbstep on WHERE tbCustomers.Step_id = tbstep.Step_id ")

แก้เป็น

sb.Append(" SELECT * FROM tbCustomers inner join tbstep on tbCustomers.Step_id = tbstep.Step_id ")


เอา where ออก






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-21 10:17:05 By : Chaidhanan
 


 

No. 2



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



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


Code (SQL)
SELECT * FROM tbCustomers inner join tbstep on tbCustomers.Step_id= tbstep.Step_id 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-21 10:18:55 By : nongpaoza
 

 

No. 3



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



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


ผมแก้เป็น

Code (VB.NET)
         Me._condb.connectDB()
        sb.Remove(0, sb.Length)
        sb.Append(" SELECT * FROM  tbCustomers inner join tbstep on tbCustomers.Step_id = tbstep.Step_id  ")
        Me._condb.da = New MySqlDataAdapter(sb.ToString(), Me._condb.con)
        Me._condb.da.Fill(dsUser, "tbCustomers ")
     

        TbCustomersDataGridView.DataSource = dsUser.Tables("tbCustomers") 'แสดงใน DataGridView




โปรแกรมไม่แสดง error แต่ไม่มีข้อมูลอะไรแสดงมาเลยครับ
ผมควรแก้ยังงัยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-21 10:42:16 By : nankittiphat
 


 

No. 4



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



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


Me._condb.da.Fill(dsUser, "tbCustomers ")มีซ่องว่างหรือป่าว อะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-21 17:38:48 By : gaowteen
 


 

No. 5



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



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


ลบช่องว่าง เวลารัน ก็ errorเหมือนเดิมครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-22 07:54:18 By : nankittiphat
 


 

No. 6



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



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

Error ว่าไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-22 08:40:04 By : lamaka.tor
 


 

No. 7



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



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


โปรแกรมไม่แสดง error แต่ไม่มีข้อมูลอะไรแสดงมาเลยครับ ===>>> อันนี้หรือปล่าวครับ


ถ้าใช้ inner join ข้อมูลจะต้องมีทั้ง 2 table น่ะครับ
ลองเช็คที่ tbCustomers.Step_id = tbstep.Step_id
ดูว่าทั้ง 2 table มี step_id ตรงกันไหมครับ
หรือไม่ก็ลองหาโปรแกรมมาต่อกับ database แล้ว query ตรง ๆ ดูว่ามีข้อมูลไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-22 09:01:15 By : fonfire
 


 

No. 8



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



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


ให้ลองเอาคิวรี่
Code (SQL)
SELECT * FROM tbCustomers inner join tbstep on tbCustomers.Step_id = tbstep.Step_id

ไปรันบน mysql workbench เพื่อดูผลลัพธ์ก่อนดีกว่าไหมครับ จะได้เช็คว่าคิวรี่เขียนถูกจริงๆแล้วค่อยเอามาใส่ในโค้ด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-22 09:10:29 By : deksoke
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : deksoke เมื่อวันที่ 2014-10-22 09:10:29
รายละเอียดของการตอบ ::
ลองแล้ว แสดงได้ปรกติครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 09:52:00 By : nankittiphat
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : nankittiphat เมื่อวันที่ 2014-10-21 10:42:16
รายละเอียดของการตอบ ::
Code
Me._condb.connectDB() sb.Remove(0, sb.Length) sb.Append(" SELECT * FROM tbCustomers inner join tbstep on tbCustomers.Step_id = tbstep.Step_id ") Me._condb.da = New MySqlDataAdapter(sb.ToString(), Me._condb.con) Me._condb.da.Fill(dsUser, "tbCustomers ") TbCustomersDataGridView.DataSource = dsUser.Tables("tbCustomers") 'แสดงใน DataGridView TbCustomersDataGridView.Databind() รึยังครับ? ^^


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 10:39:03 By : Mr.T-Bag
 


 

No. 11



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



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


ตอบความคิดเห็นที่ : 10 เขียนโดย : Mr.T-Bag เมื่อวันที่ 2014-10-24 10:39:03
รายละเอียดของการตอบ ::
5555+ อุตส่าห์รวมหัวกันขนาดนี้แต่สุดท้ายตายน้ำตื้นกันหมดเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 15:38:03 By : deksoke
 


 

No. 12



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

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 15:41:36 By : mr.win
 


 

No. 13

Guest


จากที่อ่านดูไม่น่าตายน้ำตื้นนะ

ไม่ได้บอกว่าเป็น web แถม control เป็น DataGridView

น่าจะเป็น desktop app ซะมากกว่า

ดังนั้นไม่มีหรอก Databind น่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-25 09:24:08 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 14



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



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


Me._condb.da.Fill(dsUser, "tbCustomers") เวลารัน มันขึ้นแสดงerror ตรงนี้ ครับ ผมมีใหม่ไปไม่ถูกจริงๆๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 09:03:08 By : nankittiphat
 


 

No. 15



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



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


เอา ConnectionDBClass มาดูด้วยก็จะดีนะครับ

ลองทดสอบ( เอามาจาก http://stackoverflow.com/questions/13662913/vb-net-mysqlconnection-dataadapter-returns-zero-rows-for-selects-after-mysqlcomm )
Console.WriteLine(dsDataSet.Tables("test_table").Rows.Count)


ประวัติการแก้ไข
2014-10-27 09:52:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 09:46:57 By : Chaidhanan
 


 

No. 16



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



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


Code (VB.NET)
Imports MySql.Data
Imports MySql.Data.MySqlClient
Public Class ConnectionDBClass
    Public con As New MySqlConnection
    'Public com As New MySqlCommand
    'Public da As New MySqlDataAdapter
    'Public tr As MySqlTransaction
    'Private Dr As MySqlDataReader
    'Private ds As DataSet
    'Private dt As DataTable
    Public Function connectDB() As Boolean

        If con.State = ConnectionState.Open Then con.Close()

        con.ConnectionString = "Server=localhost;User Id=root; Password=654321; Database=Maintenance; Pooling=false"
        con.Open()
        Return (True)

    End Function
End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 14:12:54 By : nankittiphat
 


 

No. 17



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



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


Code
Imports MySql.Data Imports MySql.Data.MySqlClient Public Class ConnectionDBClass Public con As New MySqlConnection 'Public com As New MySqlCommand 'Public da As New MySqlDataAdapter 'Public tr As MySqlTransaction 'Private Dr As MySqlDataReader 'Private ds As DataSet 'Private dt As DataTable Public Function connectDB() As Boolean If con.State = ConnectionState.Open Then con.Close() con.ConnectionString = "Server=localhost;User Id=root; Password=654321; Database=Maintenance; Pooling=false" con.Open() Return (True) End Function End Class


ข้างบน ตัวสีแดง มันถูก mark เอาไว้ ถือว่าไม่มีตัวตนครับ



Code
Dim dsUser As New DataSet Dim _condb As New ConnectionDBClass ' ประกาศ ตัวแปร เพื่อเรียกใช้งาน คลาส ConnectionDBClass Dim sb As New StringBuilder Me._condb.connectDB() sb.Remove(0, sb.Length) sb.Append(" SELECT * FROM tbCustomers ") Me._condb.da = New MySqlDataAdapter(sb.ToString(), Me._condb.con) Me._condb.da.Fill(dsUser, "tbCustomers ") TbCustomersDataGridView.DataSource = dsUser.Tables("tbCustomers")


สีม่วง ไม่มีตัวตน เพราะมันถูก mark จาก class


ประวัติการแก้ไข
2014-10-27 16:11:38
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 16:10:45 By : Chaidhanan
 


 

No. 18



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



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


ผม SELECT แค่ 1 ตาราง ก็SELECT แสดงได้ปรกติครับ แต่พอ SELECT สองตาราง มันไม่ออกอะคราบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 16:20:00 By : nankittiphat
 


 

No. 19



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



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


ลองเพิ่มคำสั่ง
try ครอบลงไปได้ไหมครับ

จะได้รูว่า error ว่ายังไง


Code (VB.NET)
            Try
               Me._condb.da = New MySqlDataAdapter(sb.ToString(), Me._condb.con)
               Me._condb.da.Fill(dsUser, "tbCustomers ")
            Catch ex As Exception
               msgbox( ex.Message)
            End Try

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 16:41:59 By : fonfire
 


 

No. 20



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



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


Unable to convert Mysql date/time value System.DateTime

แสดงออกมาแบบนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 16:58:40 By : nankittiphat
 


 

No. 21



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



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


ไม่รู้เกี่ยวไหม
จาก
http://stackoverflow.com/questions/5754822/unable-to-convert-mysql-date-time-value-to-system-datetime
http://stackoverflow.com/questions/17002522/unable-to-convert-mysql-date-time-value-to-system-datetime-in-vs2010

จะบอกให้เพิ่ม option ในการ connect ด้วยครับ


This is not a bug but expected behavior. Please check manual under connect options and set "Allow Zero Datetime" to true, as on attached pictures, and the error will go away.


Set both of these configurations in your connection string.

"Convert Zero Datetime=True"
"Allow Zero Datetime=True"



งั้นก็ลองแก้เป็น
con.ConnectionString = "Server=localhost;User Id=root; Password=654321; Database=Maintenance; Pooling=false ; Convert Zero Datetime=True; Allow Zero Datetime=True"


ปล. ผมไม่เคยใช้ MySQL น่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-27 17:06:06 By : fonfire
 


 

No. 22



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



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


เพิ่มแล้วครับ แต่ก็ แสดงออกมาแบบนี้คับ

Value has an unsupported format.
Parameter name; false,Convert Zero Datetime=True
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-28 08:06:36 By : nankittiphat
 


 

No. 23



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



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


ผมว่าลองเอา structure ของตารางมาดูครับ

และลองคิวรี่ ฟีลด์ datetime ที่มีค่าเป็น null หรือ 0000-00-00 00:00:00
บางที อาจไม่ซัพพอร์ต ตามที่ error แจ้งไว้นะครับ ก็ต้องลองแก้ให้มันมีข้อมูล

ได้ยังไงก็่ช่วยมาโพสไว้ด้วยนะครับ ยังไม่เคยเจอเคสแบบนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-28 09:01:29 By : Chaidhanan
 


 

No. 24



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



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

ของผมอาจจะไม่เกี่ยวนะครับ แต่อยากลองช่วยดูก่อน

คำสั่ง ตรงที่คิวรี่ข้อมูลนะครับ จากเดิม

Code (C#)
SELECT * FROM  tbCustomers inner join tbstep on tbCustomers.Step_id = tbstep.Step_id


เปลี่ยนเป็น

Code (C#)
SELECT * FROM  tbCustomers LEFT JOIN tbstep on tbCustomers.Step_id = tbstep.Step_id


เปลี่ยนจาก INNER JOIN เป็น LEFT JOIN ดูครับ ทีนี้ดูครับว่าข้อมูลออกไหม

ถ้าข้อมูลออกมา แต่มีบางค่าที่เป็น NULL แสดงว่าข้อมูลตาราง tbstep ไม่มี Step_id ที่เชื่อมกับ tbCustomers ได้เลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-28 12:30:11 By : 01000010
 


 

No. 25



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



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


ถ้าผมดึงแค่ฟิว ที่ ไม่ใช้วันที่ จะสามารถดึงมาแสดงได้ แต่เมื่อไรที่ดึงวันที่ขึ้นมาแสดง จะerror ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-31 10:35:05 By : nankittiphat
 

   

ค้นหาข้อมูล


   
 

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