Kailash_Singh Ответов: 3

Ошибка: в позиции 0 нет строки


Привет, я сейчас работаю над проектом, когда я запускаю программу, возникает ошибка. В нем говорится следующее

Система.IndexOutOfRangeException был необработан пользовательским кодом
Сообщение="в позиции 0 нет строки."
Источник="System.Data"

Трассировка стека:

at System.Data.RBTree`1.GetNodeByIndex(Int32 userIndex)
в системе.Данных.RBTree`1.индекс get_Item(типа int32 )
at System.Data.DataRowCollection.get_Item(индекс Int32)

...



Пожалуйста, помогите ... это срочно....

Raje_

Вы можете разместить несколько кодов?

3 Ответов

Рейтинг:
26

_Amy

Если я не ошибаюсь, вы пытаетесь прочитать или перебрать строки из datatable. Эта ошибка указывает на то, что источник данных(DataTable) не имеет никаких строк. Чтобы избежать этого исключения используйте его перед чтением или циклом через datatable:

if(dt.Rows.Count  > 0 ){
     //Do your stuff here.
}



--Амит


Kailash_Singh

спасибо ..........

_Amy

Добро пожаловать. :)

sommr0

он удаляет ошибку, но не woeking

Рейтинг:
1

Nikhil Dayalpawar

IndexOutOfRange исключение возникает при попытке доступа (чтения/ записи) к элементу массива с индексом, который находится за пределами массива

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


yogesh vaidya

у меня есть вопрос ,как же так

в конце концов или остановил мои работы на конце теми же проблемами
Продажи публичного класса
Частный доступ как новый GSTDBCONTROL

Публичная функция NOTEMPTY(ByVal TEXT As String) As Boolean
Возвращает Не Строку.IsNullOrEmpty(текст)
Конечная Функция
Публичная функция EMPTY(ByVal TEXT As String) As Boolean
возвращенная строка.IsNullOrWhiteSpace(текст)
Конечная Функция
Частная функция noerrors(необязательно ByVal report As Boolean = False) Как Логическое
Если Не Струна.IsNullOrEmpty(доступ.Исключение) Затем
Если report = True, то MsgBox(access.Исключение)
возвращать false
Еще
вернуть true
Конец, Если
Конечная Функция
Dim currentrecord как целое число = 0
Dim qt As String = 0
Dim custcode As String = 0
Dim cust_id As String = 0
Dim x_cond As String = 0
'Public textBoxWithPlaceHolder = новый заполнитель.PlaceholderTextBox()
Public SL_TYPE As Object = 0
Общественные CaSHMEMO_NO Как Строку
Общественные CREDMEMO_NO как строку
Общественные CHALLAN_NO как строку
Общественные prod_type_sl как один
Public TX_TYPE1 As Object = "0"
Dim prod_sl_code As Single = 0
Dim dmy_freegoods как строка
Dim dmy_qty как строка
Dim dmy_rt как строка

Private Sub EXITToolStripMenuItem_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) Обрабатывает EXITToolStripMenuItem.Щелчок
Меню.GRPmain.Местоположение = Новая Точка(23, 7)
Меню.Покажите()
Меня.Рядом()
Конец Подводной Лодки

Private Sub MENUToolStripMenuItem_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) Обрабатывает MENUToolStripMenuItem.Щелчок
Меня.Скрыть()
Меню.GRPmain.Местоположение = Новая Точка(23, 7)
Меню.Покажите()
Конец Подводной Лодки
Private Sub BACKToolStripMenuItem_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает BACKToolStripMenuItem.Щелчок
GRPSALES1.Видимое = Истинное
GRPdeleMENU.Visible = False
lbl_slstype.Видна = Ложь
lbl_invno.Видна = Ложь
lblcust.Видна = Ложь
txt_cust.Видна = Ложь
CMD_CUSTFIND.Visible = False
Метка3.Видна = Ложь
Label4.Видна = Ложь
txt_custgst.Видна = Ложь
txt_custpan.Видна = Ложь
GRPSL1.Visible = False
lbl_stat.Видна = Ложь
Конец Подводной Лодки
Private Sub SALESToolStripMenuItem_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) Обрабатывает SALESToolStripMenuItem.Щелчок
GRPSALES1.Visible = False
GRPdeleMENU.Видимое = Истинное
S_tran1()
Конец Подводной Лодки
Частная суб SALES_Shown(как byval отправителя как объект, как byval E Как системы.EventArgs) Обрабатывает Меня.Показано
GRPSALES1.Видимое = Истинное
GRPSALES1.Size = новый размер(322, 44)
GRPSALES1.Location = новая точка(12, 9)
lblmyysoft.Текст = открыть.mysoft
dgvsals_tran.Размер = Новый Размер(432, 187)
dgvsals_tran.Местоположение = Новая Точка(6, 81)
Конец Подводной Лодки
Частный Sub S_tran1()
доступ.Execquery("select * from my_code ")
Если не пусто(доступ.Исключение) Затем MsgBox(access.Исключение) : Exit Sub
Если access.dbdt.Rows.Count < 1 OrElse currentrecord > access.dbdt.Rows.Счет - 1 После Выхода Из Вложенного
Dim r As DataRow = access.dbdt.Rows(currentrecord)
txt_Sl_tranid.Text = r("id").Метод toString
txt_Sl_trancode.Текст = Р("sl_trancode").Метод toString
txt_SLjv_no.Текст = Р("jv_no").Метод toString
CaSHMEMO_NO = Р("SL_invoice").Метод toString
CREDMEMO_NO = Р("sl_invoice").Метод toString
CHALLAN_NO = r("SL_CHALLAN").Метод toString
Если Не Струна.IsNullOrEmpty(txt_Sl_tranid.Текст) Затем txt_Sl_trancode.Текст = Вал(txt_Sl_trancode.Текст) + 1
Если Не Струна.IsNullOrEmpty(txt_Sl_tranid.Текст) Затем txt_SLjv_no.Text = Val(txt_SLjv_no.Text) + 1
Если Не Струна.IsNullOrEmpty(txt_Sl_tranid.Текст) Тогда CaSHMEMO_NO = Val(CaSHMEMO_NO) + 1
Если Не Струна.IsNullOrEmpty(txt_Sl_tranid.

Patrice T

Откройте новый вопрос для вашей проблемы.

yogesh vaidya

у меня есть вопрос ,как же так

в конце концов или остановил мои работы на конце теми же проблемами

Graeme_Grant

Этому вопросу уже более 5 лет. Пожалуйста, начните новый вопрос, а не задавайте его в надгробном камне.

Manoj M.Dhote

Upsendedmindmen никогда не ставил перед собой такую же сложную работу, как и он игнорировал свои симпатии..

Рейтинг:
0

Raje_

Это означает, что из вашего запроса не было возвращено никаких результатов. Вы всегда должны кодировать оборонительно и проверять, есть ли в массиве строк какие-либо элементы, прежде чем пытаться индексировать его.