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

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:25:20
'取商品编号
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及W

原因分析:PID 可能 始终为空
1,PID的赋值 是在 IF 语句判断成立后进行的,你的那个判断语句可能在运行过程中始终没有成立过。
2,PID的赋值 也是通过读取数据库中的数据,你的原始数据可能本来就是空的

具体问题,还要具体分析,请跟踪PID的赋值,进行判断。

p_id是不是数据库中的主键?主键不能修改。主键锁定后也不能修改
不是主键的话,
问题还是应该出在数据库这边,数据类型对不?