 |
|
ช่วยดูโค้ดให้หน่อยคับว่าทำไม รหัสไม่รัน Auto คับ VB2008 กับ MySQL |
|
 |
|
|
 |
 |
|
เขียนเป็น function ดีกว่าครับ
|
 |
 |
 |
 |
Date :
2011-11-14 10:04:23 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
txtid.Text = LastID.ToString("M000")
ตรงนี้ลองเปลี่ยนเป็น
Code (VB.NET)
txtid.Text = "M" & LastID.ToString("000")
|
 |
 |
 |
 |
Date :
2011-11-14 10:17:49 |
By :
kaimuk |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
txtid.Text = "M" & LastID.ToString("000")
ผมลองเปลี่ยนแล้วแต่เลขก็ยังไม่รันต่อ อะครับ
แล้วที่บอกว่าเขียนเป็น function ทำไงเหรอคับ
คือผมเป็นมือใหม่ไม่ค่อยเข้าใจ คับ
|
 |
 |
 |
 |
Date :
2011-11-14 14:46:13 |
By :
chaokouy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยืนยันคำตอบตามคุณ kaimuk ครับ ถ้ายังไม่ได้ คงต้อง debug ดู ว่าค่าที่มาตรงหรือเปล่าครับ
|
 |
 |
 |
 |
Date :
2011-11-14 14:56:55 |
By :
Nameless |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Private Sub showcode()
cn.Open()
Dim sql As String = "SELECT * FROM mytable ORDER BY T_id DESC LIMIT 0,1"
dt = New DataTable
da = New MySqlDataAdapter(sql, cn)
da.Fill(dt)
If dt.Rows.Count > 0 Then
Dim i As Integer = dt.Rows(0).Item("T_id") + 1
txtid.Text = i.ToString("000#")
Else
txtid.Text = "0001"
End If
End Sub
ทำได้แต่เป็นตัวเลขอย่างเดียว อะ
ทำไงให้มีตัวอักษรด้วยงับ
|
 |
 |
 |
 |
Date :
2011-11-17 16:35:35 |
By :
chaokouy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Private Sub showcode()
cn.Open()
Dim sql As String = "SELECT * FROM mytable ORDER BY T_id DESC LIMIT 0,1"
dt = New DataTable
da = New MySqlDataAdapter(sql, cn)
da.Fill(dt)
If dt.Rows.Count > 0 Then
Dim i As Integer = dt.Rows(0).Item("T_id") + 1
txtid.Text = "M"+ i.ToString("000#")
Else
txtid.Text = "M"+"0001"
End If
End Sub
|
 |
 |
 |
 |
Date :
2011-11-18 20:48:44 |
By :
sodamax |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็นที่ประเถทของตัวแปรครับตรง FirstID คุณประกาศเป็น Integer แต่ตอนแสดงค่าคุณเอา String มาใส่ วิธีแก้ไขตามouh8iy[ครับ
Code (VB.NET)
Private Sub AutoGenerateRun()
Dim myConnection As MySqlConnection
myConnection = New MySqlConnection("Database=testconn;Data Source=localhost;User Id=root;Password=root")
myConnection.Open()
Dim sqlTmp As String = ""
Dim comTmp As MySqlCommand = New MySqlCommand
Dim drTmp As MySqlDataReader
Dim tmpID As String = ""
Dim LastID As Integer = 0
sqlTmp = "SELECT * FROM mytable ORDER BY T_id DESC LIMIT 0,1"
Try
With comTmp
.CommandType = CommandType.Text
.CommandText = sqlTmp
.Connection = Conn
drTmp = .ExecuteReader()
drTmp.Read()
tmpID = CStr(drTmp.Item("T_id"))
LastID = CInt(StringFromRight(tmpID, 3))
LastID = LastID + 1
txtid.Text = "M"&LastID
drTmp.Close()
End With
Catch
txtid.Text = "M001"
End Try
End Sub
|
 |
 |
 |
 |
Date :
2011-11-19 10:08:48 |
By :
wananit |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Private Sub AutoGenerateRun()
Dim myConnection As MySqlConnection
myConnection = New MySqlConnection("Database=testconn;Data Source=localhost;User Id=root;Password=root")
myConnection.Open()
Dim sqlTmp As String = ""
Dim comTmp As MySqlCommand = New MySqlCommand
Dim drTmp As MySqlDataReader
Dim tmpID As String = ""
Dim LastID As Integer = 0
sqlTmp = "SELECT * FROM mytable ORDER BY T_id DESC LIMIT 0,1"
Try
With comTmp
.CommandType = CommandType.Text
.CommandText = sqlTmp
.Connection = Conn
drTmp = .ExecuteReader() '<<<ดีบัคแล้วตรง drTmp มันไม่มีค่าเลยอะครับ
drTmp.Read()
tmpID = CStr(drTmp.Item("T_id"))
LastID = CInt(StringFromRight(tmpID, 3))
LastID = LastID + 1
txtid.Text = "M"&LastID
drTmp.Close()
End With
Catch '<<<แล้วก็มารันตรงบรรทัดนี้เลยครับ
txtid.Text = "M001"
End Try
End Sub
เลขมันไม่รันอะครับ
|
 |
 |
 |
 |
Date :
2011-11-19 16:05:43 |
By :
chaokouy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Private Sub auto_id()
Dim sqlcmd As MySqlCommand = New MySqlCommand
Dim dr As MySqlDataReader
Dim tempSql As String = "SELECT * FROM mytable ORDER BY T_id DESC LIMIT 0,1"
Dim tempId As String
cn.Open()
Try
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = tempSql
sqlcmd.Connection = cn
dr = sqlcmd.ExecuteReader
Catch ex As Exception
MessageBox.Show(ex.Message)
Exit Sub
End Try
dr.Read()
If IsDBNull(dr.Item("T_id")) = True Then
txtid.Text = "M" & "0001"
Else
tempId = dr.Item("T_id")
txtid.Text = "M" & (tempId.Substring(3) + 1).ToString("0000")
End If
cn.Close()
End Sub

ได้ละครับ แต่จะเพิ่มตั้งแต่ M001 มันฟ้อง error อะคับ >>>>If IsDBNull(dr.Item("T_id")) = True Then <<<<
|
ประวัติการแก้ไข 2011-11-20 20:54:50
 |
 |
 |
 |
Date :
2011-11-20 20:52:14 |
By :
chaokouy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตรง LastID = CInt(StringFromRight(tmpID, 3))
มันคืออะรไรค่ะ
|
 |
 |
 |
 |
Date :
2012-01-24 18:47:41 |
By :
ผู้เรียนรู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|