2014-09-04 2 views
0

Я получил эту ошибку не из-за ошибки кода, но из-за нет данных в моей таблицеНеверная попытка доступа к полю перед вызовом Read() vb.net

Как проверить, если нет никаких данных и возврат в переменной, 0

вот мой код я пытаюсь получить номер счетчика, но это ошибка, когда нет записей

Public Function GetCount() 
    Dim count As Integer 
    Dim cmd As New MySqlCommand 
    Dim reader As MySqlDataReader = Nothing 
    Conn.OpenConn() 
    Dim sqlstr As String 
    sqlstr = "SELECT counter FROM st_sales ORDER BY salesid DESC LIMIT 1" 
    Try 
    'CREATE COMMAND 
    cmd = New MySqlCommand(sqlstr, Conn.Conn) 

    reader = cmd.ExecuteReader() 
    If reader.Read() Then 
     count = reader.GetInt32(0) + 1 
    Else 
     MsgBox("Error") 
    End If 
    Finally 
     reader.Close() 
     Conn.CloseConn() 
    End Try 
    Return count 
End Function 

Спасибо за любую healp

+1

PLS делится некоторым кодом - мы не можем знать, что вы пытаетесь. Например, я думаю, вы хотите прочитать какую-то таблицу/строку, но какой? – Carsten

+0

можете ли вы опубликовать строку, в которой вы получаете исключение и исключение? так как это не должно вызывать '.GetInt32', если нет строк (' reader.Read() 'будет возвращать' false' в этом случае) – Carsten

+0

Я бы поменял ваш запрос, чтобы дать вам сумму счетчиков ... Например: SELECT SUM (счетчик) FROM st_sales, BAM нет необходимости в переменной и проверке, есть ли у читателя строки или нет ... – Codexer

ответ

0

попробуйте это

If reader.HasRows then 
'do the counting 
else 
    count=0 
end if 
+0

Да, это мне нужно –

Смежные вопросы