Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не удается присвоить элементу массива значение переменной
|
|||
|---|---|---|---|
|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Хочу в цикле присвоить значение полученное ридером из БД элементу массива. Выдает ошибку Ссылка на объект не указывает на экземпляр объекта. Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода. Сведения об исключении: System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. Ошибка источника: Строка 31: i = 0 Строка 32: plan_value = reader.GetInt32(0) Строка 33: param_cost = reader("param_cost") Строка 34: If plan_value <= CInt(param_value) Then Строка 35: Исходный файл: I:\Salary\base\zarplata\zarplata\buble.aspx.vb Строка: 33 В чем ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 20:02 |
|
||
|
Не удается присвоить элементу массива значение переменной
|
|||
|---|---|---|---|
|
#18+
Приведу еще раз все функцию Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. Ругается на строку sum_mas(i) = param_cost , что мол "System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 20:27 |
|
||
|
Не удается присвоить элементу массива значение переменной
|
|||
|---|---|---|---|
|
#18+
1) Код: vbnet 1. 2. 3. 2) Код: vbnet 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 22:31 |
|
||
|
Не удается присвоить элементу массива значение переменной
|
|||
|---|---|---|---|
|
#18+
Сатир, ты объявил массив, но не выделил под него память. И так как массив это ссылочный тип, то разумеется ты получил NullReferenceException. Для выделения памяти под массив нужно знать кол-во элементов. Ты читаешь заранее неизвестное кол-во строк из БД и значит массив здесь не подходит и надо использовать List(Of Integer): Код: vbnet 1. 2. 3. 4. 5. Кавказ-сила уже обратил твое внимание, что переменная i должна инициализироваться до цикла While, а не внутри его. Правда при использовании List(Of Integer) тебе эта переменная уже не нужна. Ну и в целом код очень ужасный. 1) Почему param_value имеет тип String хотя используется как Integer? 2) Если ты заранее знаешь что тебе нужны только строки где колонка param_condition меньше или равна param_value, то почему не добавить соотвествующее условие в SQL запрос? 3) Обращаться к колонкам по индексам плохая идея. Используй метод GetOrdinal() класса SqlDataReader 4) Открой для себя диретивку Imports чтобы не писать полные имена типов. 5) В VB.NET не надо объявлять все переменные в начале функции. Лучше это делать ближе к месту использования 6) Обработка ошибок в виде Console.WriteLine() это плохой механизм. Разве что ты это просто для отладки используешь. 7) В sum_mas ты хочешь хранить Integer, а результат заносишь в переменную sum типа Double. Зачем? 8) Я так и не понял сути твоего цикла с перестановками элементов. В общем метод можно переписать хотя бы так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2014, 01:30 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=77&tid=1357483]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 322ms |

| 0 / 0 |
