คือผมไปเอาของคนอื่นมาใช้นะครับ แต่ว่าไม่เข้าใจว่ามันหมายความว่ายังไงอะครับ ช่วยแปลให้หน่อยนะครับ
คือผมตั้งใจจะทำให้มัน Run id ตัวสุดท้ายของ table ที่ต้องการเพิ่มข้อมูลขึ้นมาเองอะครับ User จะได้ไม่ต้องไปนั่งหาว่าใส่ข้อมูลไปที่ id เท่าไหรแล้ว แล้วก็ไปเจอ function AutoGenerateRun ที่รุ่นพี่คนไหนไม่รู้ทำไว้ แต่ว่าดูแล้วงงๆ อะครับ แปลได้ไม่หมด เลยเอาไปประยุกต์ใช้ แล้วยังไม่ได้ตามที่ต้องการ
Code (VB.NET)
' อันนี้ Code AutoGenerateRun นะครับ
Private Sub AutoGenerateRun()
Dim sqlTmp As String = ""
Dim comTmp As SqlCommand = New SqlCommand
Dim drTmp As SqlDataReader
Dim tmpID As String = ""
Dim FirstID As Integer = 0
Dim LastID As Integer = 0
sqlTmp = "SELECT TOP 1 sid FROM supplier "
sqlTmp &= " ORDER BY sid DESC" 'อันนี้ผมเข้าใจว่าดึงข้อมูล sid สุดท้ายออกมา
With Conn
If .State = ConnectionState.Open Then .Close()
.Open()
End With
Try
With comTmp
.CommandType = CommandType.Text
.CommandText = sqlTmp
.Connection = Conn
drTmp = .ExecuteReader()
drTmp.Read()
tmpID = CStr(drTmp.Item("sid")) ' เอาค่า sid ที่อ่านได้เปลี่ยนเป็น string แล้วใส่ใน tmpID
LastID = CInt(StringFromRight(tmpID, 2)) 'สงใสตรงนี้อะครับ งง ว่ามันหมายความว่ายังไง
LastID = LastID + 1
txts_id.Text = LastID.ToString("SP000")
drTmp.Close()
End With
Catch
txts_id.Text = "SP001"
End Try
End Sub
Code (VB.NET)
' อันนี้ function StringFromRight ที่ AutoGenerateRun เรียกใช้
Public Function StringFromRight(ByVal strTmp As String, ByVal strLength As Integer) As String
If (strLength > 0 And strTmp.Length >= strLength) Then
Return strTmp.Substring(strTmp.Length - strLength, strLength)
Else
Return strTmp
End If
End Function
' ผมดู function StringFromRight นี้หลายรอบแล้วอะครับ แต่ว่าก็ยังแปลไม่ออกว่า AutoGenerateRun เอาไปใช้ทำอะไรอะครับ
Public Function StringFromRight(ByVal strTmp As String, ByVal strLength As Integer) As String
If (strLength > 0 And strTmp.Length >= strLength) Then
Return strTmp.Substring(strTmp.Length - strLength, strLength) // 4-2,2 จะได้ Substring(2,2) ครับ
Else
Return strTmp
End If
End Function
Public Function StringFromRight(ByVal strTmp As String, ByVal strLength As Integer) As String
If (strLength > 0 And strTmp.Length >= strLength) Then
Return strTmp.Substring(strTmp.Length - strLength, strLength) // 5-2,2 จะได้ Substring(3,2) ครับ
Else
Return strTmp
End If
End Function
using System;
class Program
{
static void Main()
{
string input = "OneTwoThree";
// Get first three characters
string sub = input.Substring(0, 3);
Console.WriteLine("Substring: {0}", sub);
}
}