จะดึงข้อมูลใน database มาพักไว้ใน dataset แล้วค่อยเรียกใช้
คือผมจะดึงข้อมูลใน database มาพักไว้ใน dataset แล้วค่อยเรียกใช้
อันที่ผมทำไว้คือมันไปดึงจาก server มาตลอดข้อมูลค่อนข้างเยอะ ค้นหาแต่ละทีนานทำให้เสียเวลา ใครรู้พอแนะนำหน่อยคับ
อันนี้ code ต้องเปลี่ยนจาก Datatable เป็น dataset ใครรู้ช่วยแนะนำหน่อย
Code (VB.NET)
Sub date_select()
If datetime_chack = "1" Then
sql = " SELECT itemcode, price from Invcostlastprice7_00_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "2" Then
sql = " SELECT itemcode, price from Invcostlastprice7_01_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "3" Then
sql = " SELECT itemcode, price from Invcostlastprice7_02_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "4" Then
sql = " SELECT itemcode, price from Invcostlastprice7_03_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "5" Then
sql = " SELECT itemcode, price from Invcostlastprice7_04_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "6" Then
sql = " SELECT itemcode, price from Invcostlastprice7_05_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "7" Then
sql = " SELECT itemcode, price from Invcostlastprice7_06_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "8" Then
sql = " SELECT itemcode, price from Invcostlastprice7_07_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "9" Then
sql = " SELECT itemcode, price from Invcostlastprice7_08_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "10" Then
sql = " SELECT itemcode, price from Invcostlastprice7_09_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "11" Then
sql = " SELECT itemcode, price from Invcostlastprice7_10_011 where itemcode = '" & TxtID.Text & "'"
ElseIf datetime_chack = "12" Then
sql = " SELECT itemcode, price from Invcostlastprice7_11_011 where itemcode = '" & TxtID.Text & "'"
Else
MessageBox.Show("ไม่พบข้อมูลที่ต้องการ", "การแจ้งเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
Dim str As String = ""
da = New SqlDataAdapter(sql, cn)
dtsearch = New DataTable
da.Fill(dtsearch)
If dtsearch.Rows.Count > 0 Then
If TxtNum.Text = "" Then
' MessageBox.Show("กรุณารับุจำนวน", "การแจ้งเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
str = dtsearch.Rows(0).Item("price")
Txtcost.Text = str.Trim
Txtcost.Text = Math.Round(Val(Txtcost.Text), 2)
Txtcost.Text = String.Format("{0:0.00}", Double.Parse(Txtcost.Text))
Txtvalue.Text = str * Convert.ToDouble(TxtNum.Text)
Txtvalue.Text = Math.Round(Val(Txtvalue.Text), 2)
Txtvalue.Text = String.Format("{0:0.00}", Double.Parse(Txtvalue.Text))
Exit Sub
End If
End Sub
Tag : .NET, VB.NET
Date :
2014-10-24 13:37:14
By :
TheCom
View :
2587
Reply :
4
Code (VB.NET)
Function date_select(TxtID As String, Optional _chack As Integer = 1) As DataTable
Dim dt As DataTable
If _chack >= 1 And _chack <= 12 Then
sql = " SELECT itemcode, price from Invcostlastprice7_" & String.Format("{0:00}", _chack - 1) & "_011 where itemcode = '" & TxtID & "'"
Else
MessageBox.Show("ไม่พบข้อมูลที่ต้องการ", "การแจ้งเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Function
End If
Dim ds As System.Data.DataSet = New System.Data.DataSet()
da = New SqlClient.SqlDataAdapter(sql, cn)
dtsearch = New DataTable
da.Fill(ds)
dt = ds.Tables(0)
End Function
แบบนี้ใช้ได้ป่ะครับ อยากใช้ตอนไหนก็เรียกได้
Date :
2014-10-24 15:56:43
By :
lamaka.tor
หลายหมื่นบรรทัด = น้อย
เอาข้อมูลมาพักไว้ที่ dataset เวลาเรียกใช้จะได้ไม่ต้องรอนานหลายวินาที = dak memory kodๆๆ
แนะนำ
- เขียน query ดีๆ ไม่ช้าหรอก
- หัดใช้ top ก็ดี
- ต้องการแค่เรียกดูข้อมูลและต้องการเร็ว data reader ช่วยได้
Date :
2014-10-25 09:17:32
By :
ห้ามตอบเกินวันละ 2 กระทู้
Load balance : Server 03