Quantcast
Channel: Learn C#
Viewing all articles
Browse latest Browse all 10

How to restore a database programmatically in c#?

$
0
0

SQL Stored Procedure: Under master database

Create  procedure RestoreDatabase(@BackupFile varchar(500),@TestDB varchar(100),@RestoreFile varchar(500))

as

DECLARE @query varchar(2000)

DECLARE @DataFile varchar(2000)

SET @DataFile = @RestoreFile + ‘.mdf’

 

DECLARE @LogFile varchar(2000)

SET @LogFile = @RestoreFile + ‘.ldf’

IF EXISTS(SELECT * FROM sysdatabases WHERE name = @TestDB)

BEGIN

    SET @query = ‘DROP DATABASE ‘ + @TestDB

    EXEC (@query)

END

RESTORE HEADERONLY FROM DISK = @BackupFile

DECLARE @File int

SET @File = @@ROWCOUNT

DECLARE @Data varchar(500)

DECLARE @Log varchar(500)

SET @query = ‘RESTORE FILELISTONLY FROM DISK = ‘ + QUOTENAME(@BackupFile , ””)

CREATE TABLE #restoretemp

(

 LogicalName varchar(500),

 PhysicalName varchar(500),

 type varchar(10),

 FilegroupName varchar(200),

 size int,

 maxsize bigint

)

INSERT #restoretemp EXEC (@query)

SELECT @Data = LogicalName FROM #restoretemp WHERE type = ‘D’

SELECT @Log = LogicalName FROM #restoretemp WHERE type = ‘L’

PRINT @Data

PRINT @Log

TRUNCATE TABLE #restoretemp

DROP TABLE #restoretemp

IF @File > 0

BEGIN

    SET @query = ‘RESTORE DATABASE ‘ + @TestDB + ‘ FROM DISK = ‘ + QUOTENAME(@BackupFile, ””) +

        ‘ WITH MOVE ‘ + QUOTENAME(@Data, ””) + ‘ TO ‘ + QUOTENAME(@DataFile, ””) + ‘, MOVE ‘ +

        QUOTENAME(@Log, ””) + ‘ TO ‘ + QUOTENAME(@LogFile, ””) + ‘, FILE = ‘ + CONVERT(varchar, @File)

    EXEC (@query)

END

C# code

private void btnBrowse_Click(object sender, EventArgs e)

{

      openFileDialog1.ShowDialog();

      txtBackupFile.Text = openFileDialog1.FileName.ToString();

}

 

private void btnOK_Click(object sender, EventArgs e)

{

  SqlCommand cmd = new SqlCommand(“RestoreDatabase”, Connection);

  cmd.CommandType = CommandType.StoredProcedure;

  cmd.Parameters.Add(new SqlParameter(“@BackupFile”, txtBackupFile.Text));

  cmd.Parameters.Add(new SqlParameter(“@TestDB”, txtDatabaseName.Text));

  string RestoreFile=”c:\\”+txtDatabaseName.Text;

  cmd.Parameters.Add(new SqlParameter(“@RestoreFile”, RestoreFile));

 

  try

  {

      Connection.Open();

      cmd.ExecuteNonQuery();

      Connection.Close();

      MessageBox.Show(“Database Imported Succesfully”, “SUCCESS”);

  }

  catch (Exception ex)

  {

      MessageBox.Show(ex.ToString());

  }

}

Udhaya



Viewing all articles
Browse latest Browse all 10

Trending Articles