问题描述
研究背景:做入库操作,先查询表中有没相应的记录,有则进行更新数量,没有则增加记录!(用VB.NET语言编写)存在问题:try与endtry里面运行有错,怀疑是if语句有错原因,请大家帮忙解决一下SearchSQL="selectcount(*)from库存where(库存.产品ID='"&TextBox2.Text&"'and库存.品牌='"&TextBox2.Text&"')"ExecuteSQL(SearchSQL,"库存")tryIfds.Tables(0).Rows.Count<>0ThenSearchSQL1="update库存set库存.数量=库存.数量+'"&TextBox5.Text&"'where(库存.产品ID='"&TextBox2.Text&"'and库存.品牌='"&TextBox2.Text&"')"ExecuteSQL(SearchSQL1,"库存")MsgBox("更新?",MsgBoxStyle.OKCancel+vbExclamation,"即将信息信息更新到库存中")ElseSearchSQL2="insertin库存valus('"&TextBox5.Text&"','"&TextBox2.Text&"','"&TextBox2.Text&"')"ExecuteSQL(SearchSQL2,"库存")MsgBox("插入?",MsgBoxStyle.OKCancel+vbExclamation,"即将信息插入到库存中")EndIfCatchexAsExceptionMsgBox("入库失败!",vbOKOnly+vbExclamation,"警告")EndTry
解决方案
解决方案二:
你的SQL语句有没有检查过?把你的SQL语句先放到查询分析器运行,看看能不能通过
解决方案三:
selectcount(*)from库存取出来的就是件数,如果没有的话count(*)=0ds.Tables(0).Rows.Count永远都是1,所以如果你要这么判断,selectcount(*)from就要改成别的字段,不要取count(*)
解决方案四:
我改成select*from库存但是还是try模块内有错ds.Tables(0).Rows.Count这句这样写有错吗?
解决方案五:
错误信息是什么?描述清楚
解决方案六:
把你的条件Ifds.Tables(0).Rows.Count<>0Then换成Ifds.Tables(0).Select("库存.产品ID='"&TextBox2.Text&"'and库存.品牌='"&TextBox2.Text&"'").Length>0Then
解决方案七:
Sorry,看错了,五楼是错的。你的DataSetds好像没有被赋值
解决方案八:
ExecuteSQL(SearchSQL,"库存")?你执行的结果放在什么地方?
解决方案九:
把这MsgBox("入库失败!",vbOKOnly+vbExclamation,"警告")这句改成MsgBox("入库失败!"&ex.message,vbOKOnly+vbExclamation,"警告")可以看到错误的原因
解决方案十:
你的if语句是没有问题的除非库存表不存在就得加判IfdsisnotnothingandAlsods.Tables(0).Rows.Count<>0Then