更新 Access db 中表的 SINGLE 字段

Posted

技术标签:

【中文标题】更新 Access db 中表的 SINGLE 字段【英文标题】:Update SINGLE field of a table in Access db 【发布时间】:2009-02-23 11:27:24 【问题描述】:

如何在 VisualStudio08 中使用 asp.net 网站更新 Access 数据库中的单个字段。假设已建立连接,请逐步说明在设计视图中要做什么。

【问题讨论】:

这里没有解决方案:***.com/questions/575821/… 有什么帮助吗? 回复非常有见地,但问题仍然有效。问题比我解释的要复杂...我有一个非规范化字段,其中包含 155 个需要更新的条目。当我尝试更新时,我收到错误“字段太多”。 [OleDbException (0x80004005): 定义的字段太多。] 这不是一个 MS Access 问题——除了 Jet 数据库引擎,您没有使用任何东西。 您有一个非规范化的 FIELD 或 TABLE?在我看来,您在非规范化表中有 155 个字段。 【参考方案1】:

这是一个控制台应用程序,向您展示如何使用 ADO.NET 更新 Access DB。 另一种方法是使用 Linq。

您可以向您的 CodeBehind 添加一个执行类似操作的方法,并从您的 OnClick 事件处理程序中调用它。

Option Explicit On
Option Strict On

Imports System
Imports System.Data
Imports System.Data.OleDb

Public Class Program
    Public Shared Sub Main()

        Dim connectionString As String = GetConnectionString()
        Dim queryString As String = _
            "UPDATE Categories Set CategoryName = 'ABC' WHERE CategoryID = 1;"

        Using connection As New OleDbConnection(connectionString)
            Dim command As OleDbCommand = connection.CreateCommand()
            command.CommandText = queryString
            Try
                connection.Open()

                Dim rowsAffected As Integer = command.ExecuteNonQuery()


            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
    End Sub

    Private Shared Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,  
        ' you can retrieve it from a configuration file.
        ' Assumes Northwind.mdb is located in c:\Data folder.
        Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
           & "c:\Data\Northwind.mdb;User Id=admin;Password=;"
    End Function
End Class

【讨论】:

【参考方案2】:

假设您希望在某个回发事件(如单击按钮)上完成此操作,您需要(这是凭记忆,我面前没有!):

    单击按钮,显示其属性,然后单击事件选项卡。 双击 OnClick 空间以创建新的事件处理程序(或直接输入名称)

    在代码窗口的事件处理程序中,调用一些类似的 SQL

    update table set field=value where field2=identifier

(或者您可以使用 LINQ 等效项)其中 tablefieldfield2value 和 identifier 应替换为适合您的数据库的特定名称。

您可以创建一个SqlCommand::ExecuteNonQuery 实例来运行 SQL。

【讨论】:

以上是关于更新 Access db 中表的 SINGLE 字段的主要内容,如果未能解决你的问题,请参考以下文章

Access中表的Id是自动编号。update语句如何更新。

MS Access 数据库 (.mdb) 中表的审计跟踪

使用 Exist 保留字 Microsoft Access 的两个更新查询

Access DB:操作必须使用可更新的查询

带有参数的 Oledb 更新命令在 access-db 上不起作用

现有 Access DB 上的 C# 附件字段更新