Там нет строки в позиции 0 - PullRequest
3 голосов
/ 02 июля 2011
cmd.CommandText = "select * from product where prod_code='" & Trim(txtprod_code.Text) & "' and branch='" & w_location & "' and avail_stock <>" & (0) & ""
cmd.CommandType = CommandType.Text
con.Open()
da_uqc.SelectCommand = cmd
cmd.Connection = con
da_uqc.Fill(ds_uqc)
m_qty = ds_uqc.Tables(0).Rows(0)(4) 'error 
da_uqc.Dispose()
ds_uqc.Dispose()
cmd.Dispose()

Можно ли так дать m_qty = ds_uqc.Tables(0).Rows(0)(4)?

Ответы [ 2 ]

5 голосов
/ 02 июля 2011

Вы получаете ошибку во время выполнения, означающую, что в таблице вообще не было строк, так как строка запроса не получает подходящих строк, вы можете сначала проверить количество строк:

If ds_uqc.Tables(0).Rows.Count > 0 then
    m_qty = ds_uqc.Tables(0).Rows(0)(4)
End If

P.S: комментариев в VB.Net, начинается с ', а не C # .Net one //.

2 голосов
/ 02 июля 2011

Это говорит о том, что не было загружено ни одной строки, предположительно, потому что не было соответствующего продукта / и т.д.Это может быть проблема чувствительности к регистру, или таких продуктов действительно не может быть.

Для информации используется конкатенация входов IS BAD .Вы всегда должны предпочитать параметризованную команду, чтобы избежать ошибок в данных (когда вы получаете кавычку в имени), но что более важно, чтобы избежать внедрения SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...