【发布时间】:2017-11-29 13:31:47
【问题描述】:
我正在使用 vb.net 在 asp.net 中工作,并且在后端我试图从数据库中选择一些东西。
但是每当我要求执行查询时,它都会给出一个错误,上面写着“OverflowException Ocuured”。所做的查询在我的 SQL 管理器工具中运行良好。任何想法可能是什么问题。
(它在“try”下的行中给出了问题,因此“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
【问题讨论】:
-
你的退货栏EIDCardNumber是INT吗?
-
在 Sql Server Management Studio 中,相同的 @name 参数在代码中失败的返回值是多少?这个值可以转换成 Int32 吗?
-
我将 returnId 更改为 String 而不是 int,并在数据库中更改为数据类型 varchar。现在错误不会发生在执行行上,而是发生在 retun 行上。完全一样的错误。有什么想法吗?
-
您的函数仍在返回整数。 VB在返回值时会进行字符串到整数的隐式转换。
-
@Robert 那么我怎样才能以最简单的方式解决这个问题呢?在我返回它之前做一个 ParseInt 吗?
标签: sql asp.net vb.net executescalar