Vb.net 值在10时停止递增
我这里有一个奇怪的问题,这段代码可以工作,但是当它达到10的值时,它会停止递增,它应该能够+1,并使其为11,但是它停止了。我不知道这是什么原因,现在真的很困惑 这是我的密码:Vb.net 值在10时停止递增,vb.net,Vb.net,我这里有一个奇怪的问题,这段代码可以工作,但是当它达到10的值时,它会停止递增,它应该能够+1,并使其为11,但是它停止了。我不知道这是什么原因,现在真的很困惑 这是我的密码: Dim i As Integer i = Integer.Parse(TextBox1.Text) + 1 TextBox1.Text = i.toString() 可能是什么原因造成的吗?任何帮助或建议都将被欣然接受。提前谢谢我试过了 Private Sub Button1_Click(sender As Objec
Dim i As Integer
i = Integer.Parse(TextBox1.Text) + 1
TextBox1.Text = i.toString()
可能是什么原因造成的吗?任何帮助或建议都将被欣然接受。提前谢谢我试过了
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
Dim itb As Integer
'make sure the number in the tb is valid
If Integer.TryParse(TextBox1.Text, itb) Then
i = itb + 1
TextBox1.Text = i.ToString()
Else
'not a number
Stop
End If
End Sub
它的效果和预期的一样。我试过这个
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
Dim itb As Integer
'make sure the number in the tb is valid
If Integer.TryParse(TextBox1.Text, itb) Then
i = itb + 1
TextBox1.Text = i.ToString()
Else
'not a number
Stop
End If
End Sub
它的效果和预期的一样。我试过这个
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
Dim itb As Integer
'make sure the number in the tb is valid
If Integer.TryParse(TextBox1.Text, itb) Then
i = itb + 1
TextBox1.Text = i.ToString()
Else
'not a number
Stop
End If
End Sub
它的效果和预期的一样。我试过这个
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
Dim itb As Integer
'make sure the number in the tb is valid
If Integer.TryParse(TextBox1.Text, itb) Then
i = itb + 1
TextBox1.Text = i.ToString()
Else
'not a number
Stop
End If
End Sub
它的工作原理与预期一样。如果该代码是您的版本,则相关代码如下:
Private Sub LoadValue( )
Dim i As Integer
Dim cmd As OleDbCommand = New OleDbCommand
With cmd
.CommandText = "SELECT MAX(Guard_ID) FROM Guard"
.CommandType = CommandType.Text
.Connection = Conn
.ExecuteNonQuery()
Dim reader As OleDbDataReader = cmd.ExecuteReader
If reader.Read Then
' posted code seems to be a
' revision of this:
TextBox1.Text = reader.GetString(0)
i = TextBox1.Text + 1
TextBox1.Text = i
reader.Close()
End If
End With
End With
问题不在于递增,而是在文本列上运行MAX查询。考虑一个ID为“{代码”>{“0”、“1”、“2”、“10”、“11”} /代码>的表。该系列的最大值是多少?由于该列是文本,因此会进行文本比较,答案不是“11”,而是“2”,因为字符2的值高于字符1,后者是“11”
和“10”
(“10”
10
“十”
)中的第一位数字
一旦有10条记录,MAX查询将只返回“9”,因为这是任何数字字符串的第一个字符的最大值
在代码和数据库中,要作为数字处理的内容必须是数字类型。对于日期类型更是如此,将它们转换为字符串没有帮助。解决方案是将数据库列类型从文本更改为整数,可能是自动编号,并让DB为您完成所有工作。如果该代码是您的修订版,则相关代码如下:
Private Sub LoadValue( )
Dim i As Integer
Dim cmd As OleDbCommand = New OleDbCommand
With cmd
.CommandText = "SELECT MAX(Guard_ID) FROM Guard"
.CommandType = CommandType.Text
.Connection = Conn
.ExecuteNonQuery()
Dim reader As OleDbDataReader = cmd.ExecuteReader
If reader.Read Then
' posted code seems to be a
' revision of this:
TextBox1.Text = reader.GetString(0)
i = TextBox1.Text + 1
TextBox1.Text = i
reader.Close()
End If
End With
End With
问题不在于递增,而是在文本列上运行MAX查询。考虑一个ID为“{代码”>{“0”、“1”、“2”、“10”、“11”} /代码>的表。该系列的最大值是多少?由于该列是文本,因此会进行文本比较,答案不是“11”,而是“2”,因为字符2的值高于字符1,后者是“11”
和“10”
(“10”
10
“十”
)中的第一位数字
一旦有10条记录,MAX查询将只返回“9”,因为这是任何数字字符串的第一个字符的最大值
在代码和数据库中,要作为数字处理的内容必须是数字类型。对于日期类型更是如此,将它们转换为字符串没有帮助。解决方案是将数据库列类型从文本更改为整数,可能是自动编号,并让DB为您完成所有工作。如果该代码是您的修订版,则相关代码如下:
Private Sub LoadValue( )
Dim i As Integer
Dim cmd As OleDbCommand = New OleDbCommand
With cmd
.CommandText = "SELECT MAX(Guard_ID) FROM Guard"
.CommandType = CommandType.Text
.Connection = Conn
.ExecuteNonQuery()
Dim reader As OleDbDataReader = cmd.ExecuteReader
If reader.Read Then
' posted code seems to be a
' revision of this:
TextBox1.Text = reader.GetString(0)
i = TextBox1.Text + 1
TextBox1.Text = i
reader.Close()
End If
End With
End With
问题不在于递增,而是在文本列上运行MAX查询。考虑一个ID为“{代码”>{“0”、“1”、“2”、“10”、“11”} /代码>的表。该系列的最大值是多少?由于该列是文本,因此会进行文本比较,答案不是“11”,而是“2”,因为字符2的值高于字符1,后者是“11”
和“10”
(“10”
10
“十”
)中的第一位数字
一旦有10条记录,MAX查询将只返回“9”,因为这是任何数字字符串的第一个字符的最大值
在代码和数据库中,要作为数字处理的内容必须是数字类型。对于日期类型更是如此,将它们转换为字符串没有帮助。解决方案是将数据库列类型从文本更改为整数,可能是自动编号,并让DB为您完成所有工作。如果该代码是您的修订版,则相关代码如下:
Private Sub LoadValue( )
Dim i As Integer
Dim cmd As OleDbCommand = New OleDbCommand
With cmd
.CommandText = "SELECT MAX(Guard_ID) FROM Guard"
.CommandType = CommandType.Text
.Connection = Conn
.ExecuteNonQuery()
Dim reader As OleDbDataReader = cmd.ExecuteReader
If reader.Read Then
' posted code seems to be a
' revision of this:
TextBox1.Text = reader.GetString(0)
i = TextBox1.Text + 1
TextBox1.Text = i
reader.Close()
End If
End With
End With
问题不在于递增,而是在文本列上运行MAX查询。考虑一个ID为“{代码”>{“0”、“1”、“2”、“10”、“11”} /代码>的表。该系列的最大值是多少?由于该列是文本,因此会进行文本比较,答案不是“11”,而是“2”,因为字符2的值高于字符1,后者是“11”
和“10”
(“10”
10
“十”
)中的第一位数字
一旦有10条记录,MAX查询将只返回“9”,因为这是任何数字字符串的第一个字符的最大值
在代码和数据库中,要作为数字处理的内容必须是数字类型。对于日期类型更是如此,将它们转换为字符串没有帮助。解决方案是将数据库列类型从文本更改为整数,可能是自动编号,并让DB为您完成所有工作。但是,您没有提供足够的上下文(尤其是代码)来解决问题。此代码由按钮触发。我的起始值是1。但当它达到10时,它停止递增。您是否使用调试器逐步检查代码以查看发生了什么?您的代码看起来很好。要么您没有提供确切的代码,要么您有其他更改
文本框
@Andrew中值的内容,这无关紧要,他正在访问文本
属性。文本框不会自动删除不适合的文本。但是,您没有提供足够的上下文(尤其是代码)来解决问题。此代码由按钮触发。我的起始值是1。但当它达到10时,它停止递增。您是否使用调试器逐步检查代码以查看发生了什么?您的代码看起来很好。要么您没有提供确切的代码,要么您有其他更改文本框
@Andrew中值的内容,这无关紧要,他正在访问文本
属性。文本框不会自动删除不适合的文本。但是,您没有提供足够的上下文(尤其是代码)来解决问题。此代码由bu触发