如何给SqlConnection一个字符串作为AttachDbFilename?

时间:2018-06-29 16:17:11

标签: c# sql-server datasource

我想在我的AttachDbFilename中使用一个字符串作为SqlConnection

但是,当我给它提供一个字符串时,它是行不通的,只会给我一个空或无效的连接/故障。如何正确提供AttachDbFilename作为字符串值代替正常设置的路径?

DialogResult result = openFileDialog1.ShowDialog();

if (result == DialogResult.OK)
{
    string databasePath = openFileDialog1.InitialDirectory + openFileDialog1.FileName;

    SqlConnection dataBaseConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=databasePath;Integrated Security=True;Connect Timeout=30;User Instance=True");
}

1 个答案:

答案 0 :(得分:1)

您在字符串文字中有databasePath,所以现在您要尝试附加一个Db文件名“ databasePath”,我假设它不存在。您可以执行此操作的一种方法是使用string.Format,因此您将执行以下操作

string databasePath = openFileDialog1.InitialDirectory + openFileDialog1.FileName;
SqlConnection dataBaseConnection = new SqlConnection(string.Format(@"Data Source=.\SQLEXPRESS;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30;User Instance=True", databasePath);

或者,对于更有条理的事情,您可以使用SQLConnectionStringBuilder类为您构建连接字符串,然后将构建器的AttachDbFilename属性设置为所需的字符串。