 |
|
สอบถามเกี่ยวกับ class connectDB เวลา Connect ตอนดึงข้อมูลเสร็จตรง Function จะปิดการ connect ให้เลยไหม |
|
 |
|
|
 |
 |
|
ไม่ปิดครับ
ลองแบบนี้ดู
Code (VB.NET)
Public Class SqlGet
Public Function SqlGet(ByVal sql As String, ByVal MyData As String) As DataSet
Dim conn As SqlConnection = New SqlConnection(Module1.strconn)
Dim da As New SqlDataAdapter(sql, conn)
Dim ds As New DataSet()
da.Fill(ds, MyData)
conn.Close
Return ds
End Function
End Class
As DataSet สามารถออกเป็น As Datatable เพื่อความหลากหลายในการใช้งานครับ
|
 |
 |
 |
 |
Date :
2016-07-28 14:35:34 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Public Function SqlGet(ByVal sql As String, ByVal MyData As String) As DataSet
Dim ds As New DataSet()
Using conn As New SqlConnection(Module1.strconn)
da.Fill(ds, New SqlDataAdapter(sql, conn))
End Using
Return ds
End Function
สั้นลงไปได้อีก 5555
|
 |
 |
 |
 |
Date :
2016-07-28 14:42:14 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เมื่อกี่ผมลอง Test ดู ใส่ conn.close กับไม่ใส่ ผลมันออกมาเหมือนกันเลย ปิดทั้งคู่ หรือผมเช็ค status ผิด
Code (VB.NET)
If conn.State = ConnectionState.Open Then
MsgBox("1")
Else
MsgBox("0")
End If
|
 |
 |
 |
 |
Date :
2016-07-28 14:45:02 |
By :
TheCom |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองใช้พวก Using ครับ
|
 |
 |
 |
 |
Date :
2016-07-28 15:17:48 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
สอบถามอีกนิดคับ ถ้าผมเอา Code ชุดบน ไปส่งระหว่าง Class กับ Module ข้อแตกต่างมันคืออะไรเหรอครับ
|
ประวัติการแก้ไข 2016-07-28 15:31:56
 |
 |
 |
 |
Date :
2016-07-28 15:31:43 |
By :
TheCom |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ว่าแล้วก็ลองออกทะเลดู
ขอนำเสนอ Extension method
Code (VB.NET)
Imports System.Data.SqlClient
Module Module1
<System.Runtime.CompilerServices.Extension()> _
Public Function SqlGet(ByVal sql As String, ByVal strconn As String) As DataTable
Dim dt As New DataTable
Using cnn As New SqlConnection(strconn)
cnn.Open()
Using dad As New SqlDataAdapter(sql, cnn)
dad.Fill(dt)
End Using
cnn.Close()
End Using
Return dt
End Function
End Module
Code (VB.NET)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As DataTable = "Select Tuna 555".SqlGet("ConnString")
End Sub
End Class
แค่นำเสนอนะครับ เพราะดูเหมือนว่า Extension method ท่าทางจะจัดโค้ดยาก
|
 |
 |
 |
 |
Date :
2016-08-02 09:45:58 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมก็มีตัว connect db เล็ก ๆ เหมือนกันครับ
แต่ผมทำเป็น class ไม่ได้ไว้ใน module
ถ้าเป็น vb สามารถเอาไปไว้ใน module ก็ได้น่ะครับ
เวลาใช้ก็เรียกใช้ได้เลย
แต่ถ้าเป็น class ต้องประกาศตัวแปรมารับ
ซึ่งเป็นสิ่งที่ผมว่ามันเป็นเรื่องดี
เนื่องจากในบางครั้งโปรแกรมต้องมีการต่อ database มากกว่า 1 ตัว
เราก็สามารถใช้ตัวแปรแทน database นั้น ๆ ได้เลย
|
 |
 |
 |
 |
Date :
2016-08-02 15:49:27 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|