Você escapou corretamente o nome do arquivo db, mas não a fonte de dados, portanto, ele tenta se conectar a uma fonte de dados chamada "(localdb)11.0", que (provavelmente) não existe.
Tente escapar corretamente assim:
SqlConnection cn = new SqlConnection("Data Source=(localdb)\\v11.0;"+
"Initial Catalog=MyDB; Integrated Security=True; "+
"MultipleActiveResultSets=True; AttachDbFilename=D:\\Products.mdf");