我正在尝试显示数据库中的数据,但似乎C#正在创建一个空结果集,并且在我的数据库结果能够填充变量之前显示 :
Index.cshtml
@inherits System.Web.Mvc.WebViewPage
@{
WebMatrix.Data.Database DB = WebMatrix.Data.Database.Open(MyConString);
var data = DB.Query("SELECT * FROM MyTable");
}
<div>
<p>
@foreach (var d in data)
{
<a href="@d.url">@d.name</a>
}
</p>
</div>
在初始加载应用程序时,我得到了这个:
<div>
<p>
</p>
</div>
但是,如果我重新加载页面,我会得到预期的结果:
<div>
<p>
<a href="home">Home</a>
<a href="contact">Contact</a>
<a href="faq">FAQ</a>
</p>
</div>
如何强制编译器等待结果?
我找到了this,但它基本上说要循环结果,直到返回结果。但是可能根本就没有结果,所以它不会起作用。
答案 0 :(得分:-2)
请更改
var data = DB.Query("SELECT * FROM MyTable");
到
var myQuery= "SELECT * FROM MyTable";
然后你的foreach改为
@foreach(var row in db.Query(myQuery))
这样可行。