【问题标题】:Getting data from a table to ASP.NET web application从表中获取数据到 ASP.NET Web 应用程序
【发布时间】:2012-06-20 16:28:38
【问题描述】:

我正在使用 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);
}

此外,我一直怀疑我的做法不对。我认为一旦数据库启动并运行,这将是正确的实现,但现在我只想让它工作,所以它准备好了 - 只需输入正确的连接字符串和表/字段名称。

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

【问题讨论】:

  • 通过连接字符串加载数据库文件很痛苦。我的建议是下载并安装 SQL Express 版本并使用它。它更接近您预期的目标环境,而且不花费任何成本。

标签: c# asp.net database-connection connection-string


【解决方案1】:

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

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

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

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

【讨论】:

  • 我已经找了三天了。我在这个 App_Data\DrugTest.mdf 文件夹中寻找它。我觉得自己像个白痴,但非常感谢,它正在工作。
【解决方案2】:

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

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

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

【讨论】:

  • 所以我应该把用户名和密码留空?
  • 与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)Thrown by adapter.Fill(drugs)
  • 听起来您可能使用的是完整版的 SQL Server 而不是 SQLExpress,所以将数据源改回 myServerAddress。
  • 我完全错过了关于连接字符串的条目。感谢您指出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 2017-07-20
  • 1970-01-01
  • 2010-10-21
相关资源
最近更新 更多