Классическая ошибка Asp без сообщения об ошибке - PullRequest
1 голос
/ 08 апреля 2011

Когда я перебираю набор записей, отображающий его на странице, как только он достигает:

posLeft = Cstr((Cint(rs("stoneleft"))*0.31))

, он перестает читать БД, а все остальные rs("") не работают.

Я делаю это неправильно?Поле stoneleft является varchar, оно преобразует его в целое число (тестовая запись, с которой я пробовал, было '100'), затем умножается на 0,31, а затем преобразуется в строку, чтобы я мог отобразить ее на странице.

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

да, довольно распространенная проблема в cASP, она существовала с 2000 года. Это проблема с драйвером БД, особенно вашего провайдера. В строке подключения попробуйте перейти к следующему. Если вы не можете, делайте то, что предлагает @stealthyninja.

проблема

driver={SQL Server};

попробуй (вместо вышеописанного)

driver=SQLNCLI;
0 голосов
/ 08 апреля 2011

@ Предоставить unwin: Вы всегда должны присваивать значения строк переменным, чтобы вы могли войти в базу данных, чтобы получить ваши данные, а затем снова выйти, прежде чем начать работать с тем, что у вас получилось.

Dim stoneLeft, posLeft

stoneLeft = rs("stoneleft")

If NOT IsNumeric(stoneLeft) OR IsNull(stoneLeft) Then
    stoneLeft = 0
Else
    stoneLeft = CInt(stoneLeft)
End If

posLeft = stoneLeft * 0.31
0 голосов
/ 08 апреля 2011

Вероятно, у вас есть нулевое или пустое значение из базы данных.

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

If Len(rs("stoneleft") & "") > 0 Then 
  posLeft = Cstr((Cint(rs("stoneleft"))*0.31))
End If

Это эквивалент:

If IsNull(rs("stoneleft")) Or IsEmpty(rs("stoneleft")) Then 
  ' don't do stuff!
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...