根据数据库日志进行增量更新如何 *** 作

根据数据库日志进行增量更新如何 *** 作,第1张

有两种做法

1、在设计数据库的时候,带入时间戳和是否删除字段,新增、修改都要更新这个字段,除此之外,删除是伪删除,也要更新时间戳,然后记录上次的时间戳,就可以取出增量数据了

2、如果设计数据库时未有该内容,只能在加一个类似日志表的东西,记录了什么时候,哪个表,哪行数据,干什么了,然后从这里读取增量

可以使用 TableAdapter.Update 方法更新(编辑)数据库中的记录。 TableAdapter.Update 方法根据传入的参数提供了若干次执行不同 *** 作的重载。 了解调用这些不同方法签名的结果非常重要。 说明 如果您的应用程序不使用 TableAdapter,您就可以使用命令对象更新数据库中的记录(例如, ExecuteNonQuery)。 有关使用命令对象更新数据的更多信息,请参见下面的“使用命令对象更新记录”。 下表描述了各种 TableAdapter.Update 方法的行为: 方法 说明TableAdapter.Update(DataTable) 尝试将 DataTable 中的所有更改保存到数据库中。 (这包括从表中移除所有删除的行、将插入的行添加到表中、更新表中已更改的所有行。) TableAdapter.Update(DataSet) 虽然该参数带有一个数据集,但 TableAdapter 仍尝试将 TableAdapter 的关联 DataTable 中的所有更改保存到数据库中。 (这包括从表中移除所有删除的行、将插入的行添加到表中、更新表中已更改的所有行。) 说明 TableAdapter 的关联 DataTable 是最初配置 TableAdapter 时创建的 DataTable。 TableAdapter.Update(DataRow) 尝试将指示 DataRow 中的更改保存到数据库中。 TableAdapter.Update(DataRows()) 尝试将 DataRow 数组中任意行中的更改保存到数据库中。 TableAdapter.Update("new column values", "original column values") 尝试保存由原始列值标识的单行中的更改。 通常,当应用程序使用数据集以独占方式存储数据时,您使用的是带有 DataSet、 DataTable 或 DataRow 的TableAdapter.Update 方法。 通常,当应用程序使用对象存储数据时,您使用的是带有列值的 TableAdapter.Update 方法。 如果TableAdapter 没有带列值的 Update 方法,就表示已将 TableAdapter 配置为使用存储过程,或者已将它的 GenerateDBDirectMethods 属性设置为 false。 尝试从 “数据集设计器”内将TableAdapter 的 GenerateDBDirectMethods 属性设置为 true,然后保存该数据集以重新生成 TableAdapter。 如果TableAdapter 仍没有带列值的 Update 方法,该表就可能没有提供足够多的架构信息以区分各行(例如,未在表中设置任何主键)。 使用TableAdapter 更新现有记录 根据应用程序的需要,TableAdapter 提供了更新数据库中记录的不同方法。 如果应用程序使用数据集存储数据,则可以在所需的 DataTable 中简单地更新记录,然后调用 TableAdapter.Update 方法并传入 DataSet、 DataTable、 DataRow 或 DataRow 数组。 上表描述了不同的 Update 方法。 用带有 DataSet、DataTable、DataRow 或 DataRows() 的 TableAdapter.Update 方法更新数据库中的记录 通过直接编辑 DataTable 中的 DataRow,编辑所需的 DataTable 中的记录。 有关更多信息,请参见 如何:编辑数据表中的行。 在 DataTable 中对行进行编辑后,请调用 TableAdapter.Update 方法。 通过传入完整的 DataSet、 DataTable、 DataRow 数组或单个 DataRow,您可以控制要更新的数据量。 下面的代码显示如何编辑 DataTable 中的记录,然后调用 TableAdapter.Update 方法将更改保存到数据库中。 (此示例使用 Northwind 数据库 Region 表。) ' Locate the row you want to update. Dim regionRow As NorthwindDataSet.RegionRow regionRow = NorthwindDataSet._Region.FindByRegionID(1) ' Assign the new value to the desired column. regionRow.RegionDescription = "East" ' Save the updated row to the database Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region) // Locate the row you want to update. NorthwindDataSet.RegionRow regionRowregionRow = northwindDataSet.Region.FindByRegionID(1)// Assign the new value to the desired column. regionRow.RegionDescription = "East"// Save the updated row to the database. this.regionTableAdapter.Update(this.northwindDataSet.Region)如果应用程序使用对象存储应用程序中的数据,您就可以使用 TableAdapter 的 DBDirect 方法将数据从对象中直接发送到数据库。 这些方法可让您将各列的单个值传递为方法参数。 调用此方法用传入该方法的列值更新数据库中的现有记录。 以下过程使用 Northwind Region 表作为示例。 使用带有列值的 TableAdapter.Update 方法更新数据库中的记录 调用TableAdapter 的 Update 方法,以参数的形式为每一列传入新值和原始值。 说明 如果没有实例可用,请实例化您要使用的 TableAdapter。 Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter.Update(1, "East", 1, "Eastern") NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = new NorthwindDataSetTableAdapters.RegionTableAdapter()regionTableAdapter.Update(1, "East", 1, "Eastern")使用命令对象更新记录 下面的示例使用命令对象直接更新数据库中的现有记录。 有关使用命令对象执行命令和存储过程的更多信息,请参见 将数据获取到应用程序。 以下过程使用 Northwind Region 表作为示例。 使用命令对象更新数据库中的现有记录 创建新的命令对象;设置它的 Connection、CommandType 和CommandText 属性;然后打开一个连接,并执行该命令。 Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING") Dim cmd As New System.Data.SqlClient.SqlCommand cmd.CommandType = System.Data.CommandType.Text cmd.CommandText = "UPDATE Region SET [RegionDescription] = @RegionDescription WHERE [RegionID] = @RegionID" cmd.Parameters.AddWithValue("@RegionDescription", "East") cmd.Parameters.AddWithValue("@RegionID", "1") cmd.Connection = sqlConnection1 sqlConnection1.Open() cmd.ExecuteNonQuery() sqlConnection1.Close() System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand()cmd.CommandType = System.Data.CommandType.Textcmd.CommandText = "UPDATE Region SET [RegionDescription] = @RegionDescription WHERE [RegionID] = @RegionID"cmd.Parameters.AddWithValue("@RegionDescription", "East")cmd.Parameters.AddWithValue("@RegionID", "1")cmd.Connection = sqlConnection1sqlConnection1.Open()cmd.ExecuteNonQuery()sqlConnection1.Close()安全性 您必须具有访问正尝试连接到的数据库的权限,以及更新所需表中记录的权限。 请参见任务 如何:删除数据库中的记录 如何:将新记录插入数据库 如何:将数据从对象保存到数据库概念 TableAdapter 概述 准备应用程序以接收数据 将数据获取到应用程序 在Visual Studio 中将控件绑定到数据 在应用程序中编辑数据 验证数据 保存数据其他资源 Visual Studio 的数据应用程序概述 连接到 Visual Studio 中的数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9442716.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存