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)
这样给出?
答案 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注入。