我正在使用一个Access数据库,我真的不喜欢这种方式,并且试图使用“contacts”表执行记录更新。该声明是这样写这样......访问更新语句并在.NET中调用所述语句
UPDATE contacts SET FirstName = [c_FirstName], LastName = [c_LastName], Title = [c_Title], Email = [c_Email], IncludeSection4 = [c_IncludeSection4] WHERE (((ContactID)=[c_ContactID]));
现在.NET部分是这样的......
Public Shared Function Update(ByVal contact As IContact) As Boolean
Dim parameterList As New List(Of DataParameter)
parameterList.Add(New DataParameter("c_ContactID", contact.ContactID, ParameterDirection.Input, OleDbType.Integer))
parameterList.Add(New DataParameter("c_FirstName", contact.FirstName, ParameterDirection.Input, OleDbType.VarChar))
parameterList.Add(New DataParameter("c_LastName", contact.LastName, ParameterDirection.Input, OleDbType.VarChar))
parameterList.Add(New DataParameter("c_Title", contact.Title, ParameterDirection.Input, OleDbType.VarChar))
parameterList.Add(New DataParameter("c_Email", contact.Email, ParameterDirection.Input, OleDbType.VarChar))
parameterList.Add(New DataParameter("c_IncludeSection4", contact.IncludeSection4, ParameterDirection.Input, OleDbType.Boolean))
If DAL.SendData("UpdateContact", parameterList) Then
Return True
End If
Return False
End Function
出于某种原因,这并不更新,并始终返回false。 cmd.ExecuteNonQuery总是返回0 ....我认为它的Access部分不正确,这里有什么明显的吗?
您确定联系人ID存在吗?此外,请包含您的DAL.SendData代码。另外,哪个版本的Access? – 2013-02-26 17:50:43
是的,一切都很好,只是参数的顺序是错误的,因为当使用Access时,参数的名称将被忽略。 – 2013-02-26 18:02:09