错误:无法将类型'System.Int64'的对象转换为键入'System.Data.Odbc.OdbcDataReader'(error: Unable to cast object of type 'System.Int64' to type 'System.Data.Odbc.OdbcDataReader')
我正在计算保存的数据上的记录。 这是我的代码:
Dim pl_qry As String Dim pl_cmd As New Odbc.OdbcCommand Dim pl_dr As Odbc.OdbcDataReader If txtPurpose.Text = "PERSONAL LOAN" Then pl_qry = "select count(purpose) from details where borrower_id = '" & bor_id & "' and purpose = '" & "PERSONAL LOAN" & "'" pl_cmd.CommandText = pl_qry pl_cmd.Connection = con pl_dr = pl_cmd.ExecuteScalar pl_dr.Read() If Not pl_dr.IsDBNull(0) Then MsgBox(pl_dr.GetString(0)) End If End If我在这一行中得到了我的错误
pl_dr = pl_cmd.ExecuteScalarI'm trying to count records on my saved datas. Here is my code:
Dim pl_qry As String Dim pl_cmd As New Odbc.OdbcCommand Dim pl_dr As Odbc.OdbcDataReader If txtPurpose.Text = "PERSONAL LOAN" Then pl_qry = "select count(purpose) from details where borrower_id = '" & bor_id & "' and purpose = '" & "PERSONAL LOAN" & "'" pl_cmd.CommandText = pl_qry pl_cmd.Connection = con pl_dr = pl_cmd.ExecuteScalar pl_dr.Read() If Not pl_dr.IsDBNull(0) Then MsgBox(pl_dr.GetString(0)) End If End IfI got my error in this line
pl_dr = pl_cmd.ExecuteScalar最满意答案
如果您检查了ExecuteScalar方法,您会注意到它将返回SQL第一行的第一列。
问题是您已将结果分配给'OdbcDataReader`
Dim pl_dr As Odbc.OdbcDataReader但也许你可以直接得到结果:
Int64 result = Convert.ToInt64(cmd.ExecuteScalar())If you have check the ExecuteScalar method, you will notice it will return the first column of the first row of your SQL.
Problem is you have assigned the result to 'OdbcDataReader`
Dim pl_dr As Odbc.OdbcDataReaderbut maybe you can just get the result directly:
Int64 result = Convert.ToInt64(cmd.ExecuteScalar())更多推荐
发布评论