 |
|
สอบถามการ Join สองตาราง VB.net กับฐานข้อมูล Mysql จะทำอย่างไร |
|
 |
|
|
 |
 |
|
Code (SQL)
SELECT * FROM tbCustomers inner join tbstep on tbCustomers.Step_id= tbstep.Step_id
|
 |
 |
 |
 |
Date :
2014-10-21 10:18:55 |
By :
nongpaoza |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมแก้เป็น
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Me._condb.da.Fill(dsUser, "tbCustomers ")มีซ่องว่างหรือป่าว อะ
|
 |
 |
 |
 |
Date :
2014-10-21 17:38:48 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลบช่องว่าง เวลารัน ก็ errorเหมือนเดิมครับผม
|
 |
 |
 |
 |
Date :
2014-10-22 07:54:18 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Error ว่าไงครับ
|
 |
 |
 |
 |
Date :
2014-10-22 08:40:04 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โปรแกรมไม่แสดง 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ให้ลองเอาคิวรี่
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2014-10-24 15:41:36 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จากที่อ่านดูไม่น่าตายน้ำตื้นนะ
ไม่ได้บอกว่าเป็น web แถม control เป็น DataGridView
น่าจะเป็น desktop app ซะมากกว่า
ดังนั้นไม่มีหรอก Databind น่ะ
|
 |
 |
 |
 |
Date :
2014-10-25 09:24:08 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Me._condb.da.Fill(dsUser, "tbCustomers") เวลารัน มันขึ้นแสดงerror ตรงนี้ ครับ ผมมีใหม่ไปไม่ถูกจริงๆๆครับ
|
 |
 |
 |
 |
Date :
2014-10-27 09:03:08 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผม SELECT แค่ 1 ตาราง ก็SELECT แสดงได้ปรกติครับ แต่พอ SELECT สองตาราง มันไม่ออกอะคราบ
|
 |
 |
 |
 |
Date :
2014-10-27 16:20:00 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองเพิ่มคำสั่ง
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Unable to convert Mysql date/time value System.DateTime
แสดงออกมาแบบนี้ครับ
|
 |
 |
 |
 |
Date :
2014-10-27 16:58:40 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่มแล้วครับ แต่ก็ แสดงออกมาแบบนี้คับ
Value has an unsupported format.
Parameter name; false,Convert Zero Datetime=True
|
 |
 |
 |
 |
Date :
2014-10-28 08:06:36 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมว่าลองเอา structure ของตารางมาดูครับ
และลองคิวรี่ ฟีลด์ datetime ที่มีค่าเป็น null หรือ 0000-00-00 00:00:00
บางที อาจไม่ซัพพอร์ต ตามที่ error แจ้งไว้นะครับ ก็ต้องลองแก้ให้มันมีข้อมูล
ได้ยังไงก็่ช่วยมาโพสไว้ด้วยนะครับ ยังไม่เคยเจอเคสแบบนี้
|
 |
 |
 |
 |
Date :
2014-10-28 09:01:29 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ของผมอาจจะไม่เกี่ยวนะครับ แต่อยากลองช่วยดูก่อน 
คำสั่ง ตรงที่คิวรี่ข้อมูลนะครับ จากเดิม
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าผมดึงแค่ฟิว ที่ ไม่ใช้วันที่ จะสามารถดึงมาแสดงได้ แต่เมื่อไรที่ดึงวันที่ขึ้นมาแสดง จะerror ครับ
|
 |
 |
 |
 |
Date :
2014-10-31 10:35:05 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|