找不到连接字符串

时间:2014-08-12 12:16:55

标签: c# .net razor asp.net-webpages

我正在尝试运行此代码:

var db = Database.Open("DBNAME");
var q  = "Select Name From Table";

@foreach(var row in db.Query(q)){
      <li> @row.Name </li>
}

但我收到错误System.InvalidOperationException: Connection string "DBNAME" was not found.

所以我进入WebMatrix 3并在Other Connections下添加了这个数据库,并在WebMatrix3应用程序中正常工作。但是我提供给WebMatrix添加到连接的连接字符串没有附加到web.config文件,我仍然得到这个错误,所以不知道还能做什么?建议?

此外,这样的数据库连接是否必须关闭?我在这个例子中没有看到一个密切的陈述,来自这里:http://www.w3schools.com/aspnet/webpages_database.asp


更新:我在web.config中添加了以下设置:

 <connectionStrings>
   <add name="DBNAME" connectionString="server=(local)\Server;database=DBNAME;uid=myUser;password=myPass;" />
 </connectionStrings>

现在我收到了以下错误:System.ArgumentException: Keyword not supported: 'server'.&lt; - 此错误显示在@foreach

1 个答案:

答案 0 :(得分:5)

您只需将连接字符串添加到web.config文件即可。取决于您使用的数据库类型。

如果使用SQL Server,可以使用以下内容:

<configuration>
   <connectionStrings>
      <add name="DBNAME" connectionString="Data Source=.\Server;Initial Catalog=MyDatabase;User ID=Username;Password=Password" providerName="System.Data.SqlClient"/>
   </connectionStrings>
<configuration>

有关连接字符串的更多信息,请访问:http://www.connectionstrings.com/

编辑:

是应该关闭数据库连接!它实现了IDisposable接口,因此您应该使用using子句。

这是一个例子

using (Database db = Database.Open("DBNAME"))
{
   // Do your database stuff here
}

当它到达using子句的末尾时,它将调用Dispose mehtod。 Dispose()将在许多其他事情上关闭连接。