vb向数据库中添加记录问题

'取商品编号WhileNotfoundAndNotrst2.EOFi=InStr(cobProduct.Text,"")P=Left(cobProduct.Text,i-... '取商品编号
While Not found And Not rst2.EOF
i = InStr(cobProduct.Text, "")
P = Left(cobProduct.Text, i - 1)
M = Mid(cobProduct.Text, i + 1)
If (rst2.Fields("p_name") = P) And _
(rst2.Fields("p_model") = M) Then
found = True
PID = rst2.Fields("p_id")
Else
rst2.MoveNext
End If
Wend
rst2.Close
'向进货表格添加记录
rst2.Open "input", db, , , adCmdTable
With rst2
.AddNew
!i_id = txtInputId.Text
!p_id = PID
!i_count = CLng(txtCount.Text)
!i_inprice = Price
!i_date = CDate(txtYear.Text & "/" & txtMonth.Text & _
"/" & txtDay.Text)
.Update
End With
rst2.Close
以上功能是向input表中添加i_id,p_id,i_count,i_inprice,i_date几个字段。每添加一项记录,数据库中其他字段都有了内容,但是p_id字段始终为空,不知道为什么唯独这个字段插入不了?是语句哪里出问题了吗?
不是主键
数据类型就是varchar
属于kowest所说的第一种情况。我把IF及While条件去掉,数据库中就有记录了。只是不知道这样的操作有什么弊端?直接这样用行不行?如何完善?
终于知道这样做的弊端了,就是插入的p_id全都是p000001,不会自动增加的。
请高手帮我写两行语句,能够正确实现上述简单功能的。
展开
 我来答
kowest
2009-09-16 · TA获得超过200个赞
知道答主
回答量:69
采纳率:0%
帮助的人:49.8万
展开全部
原因分析:PID 可能 始终为空
1,PID的赋值 是在 IF 语句判断成立后进行的,你的那个判断语句可能在运行过程中始终没有成立过。
2,PID的赋值 也是通过读取数据库中的数据,你的原始数据可能本来就是空的

具体问题,还要具体分析,请跟踪PID的赋值,进行判断。
aciom
2009-09-16 · TA获得超过385个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:194万
展开全部
p_id是不是数据库中的主键?主键不能修改。主键锁定后也不能修改
不是主键的话,
问题还是应该出在数据库这边,数据类型对不?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式