我正在尝试运行此代码:
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
行
答案 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()将在许多其他事情上关闭连接。