我在使用vb.net的asp.net工作,在后端我试图从数据库中选择一些东西。
但是每当我要求执行查询时,它都会出现一个错误,上面写着“OverflowException Ocuured'”。所做的查询在我的SQL Manager工具中完美运行。任何想法可能是什么问题。
(它在'尝试'所以' returnedId = com.ExecuteScalar'行)的行上给出问题
Function selectEIDCardnumber(ByVal name As String) As Integer
Dim con As New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("testdatabase").ConnectionString)
Dim selecter As String = "SELECT EIDCardNumber FROM [dbo].[_User] where DisplayName = @name"
Dim com As New SqlCommand(selecter, con)
com.Parameters.AddWithValue("@name", name)
con.Open()
Dim returnedId As Integer = 0
Try
returnedId = com.ExecuteScalar
Catch ex As Exception
Response.Redirect("oops.aspx")
End Try
con.Close()
Return returnedId
End Function
答案 0 :(得分:0)
com.ExecuteScalar的结果大于max int值。
Int32.TryParse(com.ExecuteScalar, returnedId)
答案 1 :(得分:0)
通过定义您的returnedId和Function As类型Integer,您告诉VB该值将是-2,147,483,648和2,147,483,647之间的整数。假设数据库中的数据是正确的,解决方案是将returnedId和Function类型更改为Int64,其中包含最多9,223,372,036,854,775,807的数字。
答案 2 :(得分:0)
如果您确定EIDCardNumber列是整数类型列,请尝试将Dim returnedId As Integer = 0
更改为Dim returnedId As Long = 0
,如果问题仍然存在,请尝试将selecter
的值更改为{ {1}}