Я просматривал некоторые форумы по гепатиту и некоторые справочные книги, но, похоже, я не могу понять, как это происходит. Моя задача - прочитать данные из двух текстовых файлов, а затем загрузить эти данные в существующую базу данных MS Access 2007. Вот что я пытаюсь сделать:
- Считывание данных из первого текстового файла и для каждой строки данных добавляйте данные в DataTable, используя CarID в качестве моего уникального поля.
- Считайте данные из второго текстового файла и найдите существующий CarID в DataTable, если существует, обновите эту строку. Если его не существует, добавьте новую строку.
- как только я закончу, поместите содержимое 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 заполнен, и я отправляю его в базу данных, я хочу убедиться, что, если записи уже существуют с тремя основными полями (DriveDate, DCode и CarNum), они обновляются новыми полями, и если не существует, тогда эти записи добавляются. Возможно ли это с моим процессом?
ТИА
AGP