Member 13659928 Ответов: 2

Необработанное исключение типа "system.data.oledb.oledbexception" произошло в system.data.dll недопустимый оператор SQL; ожидаются "удалить", "вставить", "процедура", "выбрать" или "обновить".


код
DateTime d = DateTime.Now;
                string dd = d.Day + "," + d.Month;
                string dbname = textBox1.Text;
                OleDbConnection conn = new OleDbConnection();
                conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:/dipti/Data/ERPDB.accdb";
                conn.Open();
            //string str = "USE " + dbname + ";";
            string str1 = "backup database" + dbname + "to disk = 'E:\\database\\" + dbname + "_" + dd + ".bak";
            //OleDbCommand cmd1 = new OleDbCommand(str, conn);
            OleDbCommand cmd2 = new OleDbCommand(str1, conn);
            // cmd1.ExecuteNonQuery();
            cmd2.ExecuteNonQuery();
                MessageBox.Show("Successfully");
                conn.Close();


Что я уже пробовал:

пожалуйста помочь
<pre>DateTime d = DateTime.Now;
                string dd = d.Day + "," + d.Month;
                string dbname = textBox1.Text;
                OleDbConnection conn = new OleDbConnection();
                conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:/dipti/Data/ERPDB.accdb";
                conn.Open();
            //string str = "USE " + dbname + ";";
            string str1 = "backup database" + dbname + "to disk = 'E:\\database\\" + dbname + "_" + dd + ".bak";
            //OleDbCommand cmd1 = new OleDbCommand(str, conn);
            OleDbCommand cmd2 = new OleDbCommand(str1, conn);
            // cmd1.ExecuteNonQuery();
            cmd2.ExecuteNonQuery();
                MessageBox.Show("Successfully");
                conn.Close();

2 Ответов

Рейтинг:
2

Richard Deeming

BACKUP DATABASE это команда SQL Server. Вы подключаетесь к базе данных MS Access.

Чтобы создать резервную копию базы данных Access, вам просто нужно скопировать файл базы данных.

string sourceFile = @"F:\dipti\Data\ERPDB.accdb";
string destinationFile = @"E:\database\" + dbname + "_" + dd + ".bak";
System.IO.File.Copy(sourceFile, destinationFile, overwrite: true);


Рейтинг:
1

OriginalGriff

Вы пропустили заключительную цитату:

string str1 = "backup database" + dbname + "to disk = 'E:\\database\\" + dbname + "_" + dd + ".bak";

                                                      ^


Richard Deeming

Я не думаю, что это поможет - код подключается к базе данных Access. :)