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()
дальше этот код вообще бессмысленно смотреть.
опять у меня вопрос, не могу найти ошибку в коде, сам файл сохраняется, но он пустой, где же ошибка?
в выпадающем окне *Выберете базу данных* для выбора, только *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()