我一直在阅读一些hep论坛和一些帮助书籍,但似乎无法让我的头缠到此。我的任务是从两个文本文件中读取数据,然后将该数据加载到现有的MS Access 2007数据库中。所以这里是我想要做的:VB.NET更新访问数据库与数据表
- 从第一个文本文件和每一行数据读取数据使用CarID作为我的唯一字段将数据添加到DataTable。
- 从第二个文本文件读取数据,并在DataTable中查找现有CarID,如果存在更新该行。如果它不存在,请添加一个新行。
- 一旦完成将DataTable的内容推送到数据库。
我有什么至今:
Dim sSQL As String = "SELECT * FROM tblCars"
Dim da As New OleDb.OleDbDataAdapter(sSQL, conn)
Dim ds As New DataSet
da.Fill(ds, "CarData")
Dim cb As New OleDb.OleDbCommandBuilder(da)
'loop read a line of text and parse it out. gets dd, dc, and carId
'create a new empty row
Dim dsNewRow As DataRow = ds.Tables("CarData").NewRow()
'update the new row with fresh data
dsNewRow.Item("DriveDate") = dd
dsNewRow.Item("DCode") = dc
dsNewRow.Item("CarNum") = carID
'about 15 more fields
'add the filled row to the DataSet table
ds.Tables("CarData").Rows.Add(dsNewRow)
'end loop
'update the database with the new rows
da.Update(ds, "CarData")
问题:
在构建我的表,我使用 “SELECT * FROM tblCars”,但如果该表具有数百万条记录已经什么。这不是浪费资源吗?如果我想更新新记录,我应该尝试一些不同的东西吗?
一旦我完成了第一个文本文件,然后我去我的下一个文本文件。这里最好的方法是什么:首先查找基于CarNum的现有记录或创建第二个表格,然后将两者合并到一起?
最后,当DataTable完成填充和im推到数据库我想确保如果记录已经存在三个主要字段(DriveDate,DCode和CarNum),他们得到更新与新字段,如果它不存在,那么这些记录会被追加。我的过程可能吗?
TIA AGP
除非我遗漏了一些东西,否则我不会使用中间数据表,而是直接从文本文件数据中插入或更新MS-Access数据库。首先测试以确定密钥是否存在,并相应地插入或更新。 – 2013-07-10 23:31:00