0
一些我有一个例程,从SQL数据库的INT列得到了MAX值,应该是“1”,以增加这个数字。问题是,当它运行时,它似乎是第一次工作,但每次之后,例程继续返回'1'。我正在查找的值叫做maxrptnum。例程如下:试图增加从SQL数据库查询
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim conn As New SqlConnection("Data Source=server;Initial Catalog=forms;User ID=user;Password=password")
Dim cmd As New SqlCommand
cmd.CommandText = "select max(increment) from forma where rptnum like '[email protected]%'"
cmd.Parameters.Clear()
cmd.Parameters.Add("@inspinit", SqlDbType.Char).Value = inspinit.Text
cmd.Connection = conn
conn.Open()
maxrptnum = cmd.ExecuteScalar() & String.Empty
If maxrptnum = String.Empty Then
maxrptnum = 1
Me.rptnum.Text = ("A" + "-" + Me.inspinit.Text + "-" + maxrptnum)
Else
Me.rptnum.Text = ("A" + "-" + Me.inspinit.Text + "-" + (maxrptnum + 1))
End If
conn.Close()
saverpt()
End Sub
的maxrptnum被声明为一个字符串,但DB类型为int。这可能是问题,但不知道如何解决。
什么是增量的数据类型?这看起来很像你想要创建自己的递增号码。不要这样做。有这么多的挑战和细微差别,你永远不会做对。这就是身份的用途。它已经做到了这一点,并处理所有边界情况下的并发性,所以你不必这样做。如果你在2012+以上,你也可以使用序列。 –
它也看起来像你可能试图使用字母数字标识。不要那样做。如果用户或其他人需要预先填写字母,则可以使用代码轻松完成此操作。它可以防止您能够使用AI /身份栏...请参阅注释1 – Plutonix