относительный путь data\\bd.mdf
не работает в соединениях? например.,
con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='data\\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True";
В противном случае вы можете использовать текущий ярлык каталога, например, что-то вроде
string dbdirectory = System.IO.Directory.GetCurrentDirectory() + "\\data\\bd.mdf"
con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='"
+ dbdirectory + "';Integrated Security=True;Connect Timeout=30;User Instance=True";
Или вы можете даже открыть диалоговое окно файла и спросить пользователя, где он хочет сохранить данные программы, и получить полный путь оттуда.
РЕДАКТИРОВАТЬ: Это, как вы могли бы достичь того, что вы хотите, однако я бы предложил хранить БД в другом месте, как @TomTom предложил