今天下午一觉睡到5点才起来,就马上开始做项目,简单的说就是在三层模式中解决将图片存储到SQL里和从SQL里调出该图片,这个问题积累了几天了一直没去解决。。 想了N久,改了N多,调了N久,总算全部写出来,自认为写对了,结果一运行,选好用户图片,然后添加,晕。。。。 提示错误。。。 后来调了N久才发现这里错了: 注:User.U_Image 是获得图片的二进制代码。。 '* Function Name: AddUser'* Option Desc: 增加一个用户Public Function AddUser(ByRef User As clsItemUser) As BooleanOn Error GoTo AddErr Dim strSQL As String strSQL = "Insert Into T14_CS_User Values( " & User.U_Id & ",'" & User.U_Name & "','" & User.U_Pwd & _ "','" & User.U_Sex & "'," & User.U_Age & ",'" & User.U_Duty & "','" & User.U_Tel & "','" & _ User.U_Address & "','" & User.U_Image & "','" & User.U_ImageName & "')" conConnection.Execute (strSQL) AddUser = True Exit Function AddErr: MsgBox Err.Number & Err.Description Err.Clear AddUser = False End Function 本来以为是User.U_Image存的二进制代码错了,一直调式这个,N久后也没调对,后来干脆就把我以前写的一个将图片存储到SQL里的例子拿出来对照了一下。 马上就发现哪里错了,一改,在运行. OK.。 添加成功。 改成如下: '* Function Name: AddUser'* Option Desc: 增加一个用户Public Function AddUser(ByRef User As clsItemUser) As BooleanOn Error GoTo AddErr Dim rcUser As ADODB.Recordset Set rcUser = New ADODB.Recordset rcUser.Open "Select * From T14_CS_User", conConnection, adOpenStatic, adLockOptimistic, -1 rcUser.AddNew rcUser.Fields("U_Id").Value = User.U_Id rcUser.Fields("U_Name").Value = User.U_Name rcUser.Fields("U_Pwd").Value = User.U_Pwd rcUser.Fields("U_Sex").Value = User.U_Sex rcUser.Fields("U_Age").Value = User.U_Age rcUser.Fields("U_Duty").Value = User.U_Duty rcUser.Fields("U_Tel").Value = User.U_Tel rcUser.Fields("U_Address").Value = User.U_Address rcUser.Fields("U_Image").Value = User.U_Image rcUser.Fields("U_ImageName").Value = User.U_ImageName rcUser.Update AddUser = True Exit Function AddErr: MsgBox Err.Number & Err.Description Err.Clear AddUser = False End Function 错误:既strSQL执行添加的SQL语句里不能包含User.U_Image二进制代码。如果要添加User.U_Image二进制代码只能要记录集来添加。 希望你不要在犯同样的错误。。 55555555

评论