Вы можете использовать только параметры в тех местах, где их поддерживает SQL Server. К сожалению, SQL Server не поддерживает параметризованные операторы CREATE DATABASE
(хотя у меня есть чувство, что параметры файла могут содержать параметры файла.)
Вам нужно будет построить SQL самостоятельно: / g2]
string dataBaseAttachText = "CREATE DATABASE [" + dbName + "] " +
"ON (FILENAME = @filename) " +
"LOG ON (FILENAME = @filenamelog) " +
"FOR ATTACH GO";
var cmd = CreateCommand(dataBaseAttachText);
SetParameter(cmd, "@filename", @"c:\demo_data.mdf");
SetParameter(cmd, "@filenamelog", @"c:\demo_data.mdf.LDF");
cmd.ExecuteNonQuery();
ПРЕДОСТЕРЕЖЕНИЕ: это восприимчиво к атакам SQL-инъекций, поэтому следует принять меры предосторожности; если вы не доверяете источнику имени базы данных, не делайте этого!
Вам нужно будет внести аналогичные изменения в части имени файла, если они не могут быть параметризованы.