Masalahnya ada di sini
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName, dataFileLocation));
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName + "_log", logFileLocation));
di sini databaseName berarti, nama database yang ditentukan dalam file cadangan db. Tapi Anda menentukan nama db tujuan.
Ubah ke nama db asli
di sini contoh kode untuk membaca nama db dari file cadangan
DataTable dtFileList = sqlRestore.ReadFileList(serverName);
string dbLogicalName = dtFileList.Rows[0][0].ToString();
string dbPhysicalName = dtFileList.Rows[0][1].ToString();
string logLogicalName = dtFileList.Rows[1][0].ToString();
string logPhysicalName = dtFileList.Rows[1][1].ToString