Обновление CSV в MySQL - Visual Basic .NET
Формулировка задачи:
Здравствуйте!
У меня есть файлы csv их необходимо загружать в удаленную базу. При этом если такие записи есть то обновлять определенные поля а если нету то добавлять.
Файлов много, записей в общей сложности будет свыше 30000, обновление данных раз в неделю.
вот то что сам сделал:
Это все работает но очень медленно. И я точно знаю что есть метод проще (это всегда так, ибо я тот еще кодер) но найти не смог.
На 4800 записей ушло 20 минут.
Листинг программы
- For Each File In arrFiles
- Label1.Text = Label1.Text & vbCrLf & "Обработка файла " & IO.Path.GetFileName(File)
- Lines = IO.File.ReadAllLines(File, System.Text.Encoding.Default)
- 'Импорт в таблицу USRUSER - хранятся логин пароль и другая информация о потребителе
- If InStr(IO.Path.GetFileName(File), "usrUser") > 0 Then
- For i = 0 To Lines.Count - 1
- CountRecord = CountRecord + 1
- Array = Split(Lines(i), ";")
- If Array(0) <> "" And Array(0) <> "0" Then
- cmd.CommandText = "SELECT * from usrusers Where Login= '" & Array(0) & "'"
- Try
- reader = cmd.ExecuteReader()
- If reader.HasRows Then
- cmd.CommandText = "UPDATE usrusers SET fio='" & Array(1) & "' ,adres='" & Array(2) &
- "',Debt=" & Array(3) & ",`Role`=0,phone='" & Array(4) & "',email='" & Array(5) &
- "' WHERE login='" & Array(0) & "'"
- Else
- cmd.CommandText = "INSERT INTO usrusers (login,fio,adres,Debt,phone,email,`Role`) VALUES ('" & Array(0) & "','" &
- Array(1) & "','" & Array(2) & "','" & Array(3) & "','" & Array(4) & "','" & Array(5) & "',0)"
- End If
- reader.Close()
- cmd.ExecuteNonQuery()
- Catch ex As Exception
- End Try
- End If
- Next
- End If
- 'Конец импорта в таблицу usrUser
- 'Импорт в таблицу usroperation - хранятся начисления и оплата
- If InStr(IO.Path.GetFileName(File), "usroperation") > 0 Then
- For i = 0 To Lines.Count - 1
- Array = Split(Lines(i), ";")
- IDusr = OpredelenieIDusr(Array(0))
- Try
- cmd.CommandText = "SELECT * FROM usroperation Where UserID= '" & IDusr & "' and Data=" & Array(2) & " and VidOplati=" & Array(4)
- reader = cmd.ExecuteReader()
- If reader.HasRows Then
- 'cmd.CommandText = "UPDATE usroperation SET Vid='" & Array(1) & "' ,Data='" & Array(2) &
- ' "',Summa=" & Array(3) & ",`VidOplati`=" & Array(4) & " WHERE login='" & IDusr & "'"
- Else
- cmd.CommandText = "INSERT INTO usroperation (UserID,Vid,Data,Summa,VidOplati) VALUES ('" & Array(0) & "','" &
- Array(1) & "','" & Array(2) & "','" & Array(3) & "','" & Array(4) & ")"
- End If
- reader.Close()
- cmd.ExecuteNonQuery()
- Catch ex As Exception
- End Try
- Next
- End If
- Next
Решение задачи: «Обновление CSV в MySQL»
textual
Листинг программы
- cmd.CommandText = "Load DATA LOCAL INFILE '\tmp" & IO.Path.GetFileName(File) & "' REPLACE INTO TABLE `usrusersTemp`" &
- " FIELDS TERMINATED BY ';'
- (
- `login` ,
- `fio` ,
- `adres` ,
- `Debt` ,
- `phone` ,
- `email`
- )"
- Debug.Print(cmd.CommandText)
- cmd.ExecuteNonQuery()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д