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驱动程序