C# 将字符串赋给字符串变量引发算术运算导致溢出,

C# 将字符串赋给字符串变量引发算术运算导致溢出,,c#,mysql,vb.net,datareader,C#,Mysql,Vb.net,Datareader,在处理以下代码时,我遇到了一些错误 queryCommand= "select user_name,user_lastname,user_address from usertable" objODBCDataReader = dbconObject.GetDataReader(queryCommand) If objODBCDataReader.HasRows = True Then Dim userName = objODBCDataReader.Item("user_name").To

在处理以下代码时,我遇到了一些错误

queryCommand= "select user_name,user_lastname,user_address from usertable"
objODBCDataReader = dbconObject.GetDataReader(queryCommand)
If objODBCDataReader.HasRows = True Then
   Dim userName = objODBCDataReader.Item("user_name").ToString() 'here it throws error as Arithmetic operation resulted in an overflow
End If
GetDataReader
是一种将查询作为字符串接受并将结果作为
Datareader
返回的方法

让我知道为什么在为字符串变量指定字符串值时会发生此错误

我正在使用

VisualStudio 2012
mysql 5.0
odbc driver 3.51
64 bit os

在IF语句中,您正在测试行是否存在

此时您还没有读取任何数据吗

queryCommand= "select user_name,user_lastname,user_address from usertable"
objODBCDataReader = dbconObject.GetDataReader(queryCommand)
If objODBCDataReader.HasRows = True Then
  objODBCDataReader.Read()
  lsfinyear = objODBCDataReader.Item("user_name") 'here it throws error as Arithmetic operation resulted in an overflow
End If

我对你有几点建议:

1让我们使用命令eof
,该命令将在使用结束时自动处理连接,即使出现任何异常,您也无需担心连接问题

2使用
.Read
方法读取行,然后只有您可以使用其列索引或通过列名访问相应列中的值

3您可以使用
while
来检查
hasRow
,然后阅读

现在考虑下面的代码:

Dim queryString As String = "select user_name,user_lastname,user_address from usertable"
Using connection As New OdbcConnection(connectionString)
    Dim command As New OdbcCommand(queryString, connection)
    connection.Open()
    Dim reader As OdbcDataReader = command.ExecuteReader()
    While reader.Read()
        Console.WriteLine("user name={0}", reader(0).ToString)
        Console.WriteLine("user lastname{0}", reader("user_lastname").ToString)
    End While      
    reader.Close()
End Using

您将从

中获得更多详细信息和示例。很抱歉,这是我在复制代码时犯的错误。现在我更正代码,看看您使用的MySql和MySql connector版本是什么?您是如何声明
lsfinyear
?如果您使用它,可能会指出代码中导致失败的一些问题。如果您找到了解决方案,请创建并接受包含它的答案,以便将来有类似问题的人也能找到帮助:)这不是答案,它不会解决我的问题。请查看我的更新。我认为问题在于
ODBC驱动程序