【发布时间】:2013-02-26 17:46:39
【问题描述】:
我正在使用一个我真的不喜欢顺便说一句的 Access 数据库,并且正在尝试使用“联系人”表对记录执行更新。声明是这样写的……
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 的哪个版本?
-
是的,一切都很好,只是参数的顺序错误,因为在使用 Access 时,参数的名称被忽略了。
标签: .net ms-access sql-update