0

我正在使用 Visual Studio 2010 构建一个 ASP.NET Web 应用程序,我正在从数据库中的信息动态填充(部分)站点地图。现在,我的 App_Data 文件夹中只有一个名为 DrugTest.mdf 的虚拟表。该表只是名为 DrugTest1,它只有一个字段 DrugName。我碰壁的地方实际上是从该表中获取数据。我感到困惑的一部分是连接字符串。我查看了很多关于连接字符串的不同信息,最值得注意的是http://www.connectionstrings.com/,但我对如何将所述信息实际应用到这个项目有点困惑。

编辑:我使用的是 SQL Server 2008 RC。

例如:Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

密码和用户 ID 是不言自明的,但据我所知,我没有得到其中任何一个,我只是在 App_Data 文件夹中添加了一个表并用虚拟数据填充它。ServerAddress 有点令人困惑,因为这些信息并没有真正存储在服务器上,它只是存储在本地。老实说,我不确定初始目录的含义。这是填充子树的代码。您会注意到连接字符串留空。

string connString = ""; // get the connection string
string commandString = "SELECT drugName FROM DrugTable1";

SqlConnection connection = new SqlConnection(connString); // connect to db
SqlCommand command = new SqlCommand(commandString, connection); // set up the command
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet drugs = new DataSet();
adapter.Fill(drugs);

foreach (DataRow row in drugs.Tables[0].Rows)
{
    string drugName = row["Name"] + "";
    SiteMapNode node = new SiteMapNode(this, drugName,
                        "~/PlaceHolderUrl?path=" + drugName,
                        drugName);
    AddNode(node, root);
}

此外,我有一个挥之不去的怀疑,即我不会以正确的方式处理这件事。我认为一旦数据库启动并运行,这将是正确的实现,但现在我只想让它工作,所以它准备好了 - 只需输入正确的连接字符串和表/字段名称。

所以,最后,我的问题是:我将如何连接到这个本地表?我的连接字符串应该是什么格式?我注意到有很多。有没有更好的方法来做到这一点/我做错了吗?

4

2 回答 2

1

尝试将连接字符串的初始目录部分替换为AttachDbFilename=|DataDirectory|DrugTest.mdf.

此外,如果您使用的是 SQL Server Express,则可能需要在数据源中包含该实例,因此可以尝试Data Source=mySeverAddress\SQLExpress,其中 SQLExpress 是实例名称。

顺便说一句,在http://www.connectionstrings.com站点上,如果您向下滚动到标题为“在连接时附加位于数据目录中的数据库文件”的部分,您可以在 SQL Server 2008 页面中找到此信息到本地 SQL Server Express 实例。”

于 2012-06-20T16:37:34.517 回答
1

另一种获取正确连接字符串的方法在 ServerExplorer 窗口中检查

  • 在菜单上单击查看-> 服务器资源管理器
  • 在服务器资源管理器窗口中找到 DrugTest.mdf
  • 右键单击该文件并选择属性

在此处输入图像描述

  • 您可以在属性中看到正确的连接字符串
  • 复制连接字符串并使用

注意:文件位置是硬编码的。您可能需要|DataDirectory|稍后使用

于 2012-06-20T16:48:11.490 回答