Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Резервное копирование, где ошибка

Михаил Телятников Ученик (97), на голосовании 4 года назад
Доброго времени суток

опять у меня вопрос, не могу найти ошибку в коде, сам файл сохраняется, но он пустой, где же ошибка?
в выпадающем окне *Выберете базу данных* для выбора, только *dbo* это формат таблицы
База Данных на MySQL создана в SQL Server 2014 Management Studio
База Данных называется Р30,Таблица tab1
Заранее благодарю

Imports System.Data.SqlClient
Imports System.IO
Imports p30.Backup
Public Class Backup
Dim SqlConnection As New SqlConnection

Dim dt As New DataTable
Dim cmd As String
Dim dtseCt As Integer
Dim da As SqlDataAdapter

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
koneksi()
cmd = "SELECT DISTINCT TABLE_SCHEMA FROM information_schema.TABLES"
da = New SqlDataAdapter(cmd, SqlConnection)
da.Fill(dt)
dtseCt = 0

ComboBox1.Enabled = True
ComboBox1.Items.Clear()
ComboBox1.Items.Add("== Выберете Базу Данных ==")

While dtseCt < dt.Rows.Count

ComboBox1.Items.Add(dt.Rows(dtseCt)(0).ToString())
dtseCt = dtseCt + 1

End While
ComboBox1.SelectedIndex = 0
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True

SqlConnection.Close()
dt.Dispose()
da.Dispose()

Catch ex As Exception
MsgBox("")
End Try
End Sub

Public Sub koneksi()
Try
SqlConnection = New SqlConnection("Server= " & TextBox1.Text & ";user id=" & TextBox2.Text & ";password=" & TextBox3.Text & ";")
If SqlConnection.State = ConnectionState.Closed Then
SqlConnection.Open()
End If

Catch ex As Exception
MsgBox("")
End Try
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim DbFile As String
Try
SaveFileDialog1.Filter = "SQL Dump File (*.sql)|*.sql|All files (*.*)|*.*"
SaveFileDialog1.FileName = "Database Backup " + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + ".sql"
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then

koneksi()
DbFile = SaveFileDialog1.FileName
Dim BackupProccess As New Process
BackupProccess.StartInfo.FileName = "cmd.exe" 'cmd.exe
BackupProccess.StartInfo.UseShellExecute = False
BackupProccess.StartInfo.WorkingDirectory = "C:\Temp"
BackupProccess.StartInfo.RedirectStandardInput = True
BackupProccess.StartInfo.RedirectStandardOutput = True
BackupProccess.Start()
Голосование за лучший ответ
lem Мастер (1818) 4 года назад
Извините конечно, но у вас тут в коде полная ахинея.

База Данных на MySQL создана в SQL Server 2014 Management Studio - *FACEPALM*

Вы используете System.Data.SqlClient а даете ему строку подключения MySql - еще один *FACEPALM*

так какая у вас база-то? MSSQL или MySql?
либо скачайте соответствующую для MySql библиотеку для подключения, либо строку подключения для SqlServer сделайте нормальную.

вы в функции koneksi() открыли подключение SqlConnection.Open() и не закрыли его? неясно вообще зачем его тут открывать.

дата адаптер сам откроет его и закроет по вызову da.Fill(dt)

"SELECT DISTINCT TABLE_SCHEMA FROM information_schema.TABLES" - это не список БД, и даже не список таблиц.

и файл пустой и будет, потому что вы не записываете в него ничего.

это вообще непонятно что зачем вам консоль:
Dim BackupProccess As New Process
BackupProccess.StartInfo.FileName = "cmd.exe" 'cmd.exe
BackupProccess.StartInfo.UseShellExecute = False
BackupProccess.StartInfo.WorkingDirectory = "C:\Temp"
BackupProccess.StartInfo.RedirectStandardInput = True
BackupProccess.StartInfo.RedirectStandardOutput = True
BackupProccess.Start()

дальше этот код вообще бессмысленно смотреть.
Hello WorldМыслитель (5499) 4 года назад
Может это вирус?
Михаил ТелятниковУченик (97) 4 года назад
это не вирус это мои безобразные наработки
lem Мастер (1818) Михаил Телятников, если все таки mysql to смотрите тут: https://stackoverflow.com/a/12311685/13268429
lemМастер (1818) 4 года назад
Похожие вопросы