Try out following code.If u have any problem I can send u the full form I am already using to restore my db in a software-app.
bool blYesRestoredb = false;
string strDirectorypath = txtFilePath.Text;
FileInfo fileRestoreDatabaseFrom = new FileInfo(strDirectorypath);
string strFileName = fileRestoreDatabaseFrom.Name.ToString();
string strCurrentDir = Directory.GetCurrentDirectory();
FileInfo fileTempDB = new FileInfo(strCurrentDir + "\\TempDataBase.sdf");
if (fileRestoreDatabaseFrom.Exists == true)
{
if (strFileName.Contains(".sdf") && (strFileName.Split('.').Length == 2) && (fileRestoreDatabaseFrom.Extension==".sdf"))
{
FileStream FSSource = new FileStream(fileRestoreDatabaseFrom.FullName, FileMode.Open, FileAccess.Read);
FileStream FSDestination = new FileStream(fileTempDB.FullName, FileMode.OpenOrCreate, FileAccess.Write);
if(fileTempDB.Exists == false) FSSource.CopyTo(FSDestination);
if(FSSource.SafeFileHandle.IsClosed == false) FSSource.SafeFileHandle.Close();
if(FSDestination.SafeFileHandle.IsClosed == false) FSDestination.SafeFileHandle.Close();
blYesRestoredb = true;
}
else
{
MessageBox.Show("Please provide A Valid Database File Having '.sdf' extension",
"Invalid Extension",MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
}
else
{
MessageBox.Show("Please Provide a Valid Database File to Restore.", "File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
}
catch (Exception err)
{
MessageBox.Show(err.Message, "Error Encountered", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if (blYesRestoredb == true && fileTempDB.Length > 0 && fileTempDB.Exists == true )
{
fileTempDB.Refresh();
CheckConditionsAndRestoreDatabase();
}