位置0没有行

时间:2011-07-02 09:29:32

标签: .net vb.net ado.net exception-handling

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 个答案:

答案 0 :(得分:5)

你得到一个运行时错误,表示表中根本没有行,因为你的查询字符串没有得到任何匹配的行,你可以先检查行计数:

If ds_uqc.Tables(0).Rows.Count > 0 then
    m_qty = ds_uqc.Tables(0).Rows(0)(4)
End If
VB.Net中的

P.S:评论,以'开头,而不是C#.Net one //

答案 1 :(得分:2)

这告诉你没有加载任何行,大概是因为没有匹配的产品/等。这可能是一个区分大小写的问题,或者真的可能没有这样的产品。

有关信息,请使用输入连接 IS BAD 。您应该总是更喜欢参数化命令,以避免数据错误(当您在名称中获得引号时),但更重要的是避免SQL注入。