我想通过编码生成auto_no。 所以我需要从sql server获取之前的auto_no然后auto_no + 1来生成下一个数字。 但是因为我的数据库还没有任何记录。所以temp应该等于1。 但为什么我得到temp = 0?
Dim con As New SqlConnection(myConn)
Dim myReader As SqlDataReader
Dim temp As Int64
con.Open()
Dim sql As String = "SELECT MAX(Auto_No) FROM Quotation_No"
Dim comm As SqlCommand = New SqlCommand(sql, con)
con.Open()
myReader = comm.ExecuteReader
If myReader.HasRows Then
Do While myReader.Read()
Loop
Else
temp = 1
End If
Frm1.txtQuotation_No.Text = temp
con.Close()
答案 0 :(得分:1)
摆脱对你的问题的第一次myReader.Read()调用。
您的读者总是返回1行(即使数据库中没有行也会返回结果(0或null))。
您的代码正在执行的操作如下: