Vấn đề là ở đây
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName, dataFileLocation));
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName + "_log", logFileLocation));
ở đây databaseName có nghĩa là, tên của cơ sở dữ liệu được chỉ định trong tệp sao lưu db. Nhưng bạn đang chỉ định tên db đích.
Thay đổi nó thành tên db ban đầu
đây là mã mẫu để đọc tên db từ tệp sao lưu
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