我继承了一个新的网络应用程序项目。这是一个 C#/MVC Razor 引擎项目。我设置了我的开发环境(Visual Studio 和 SQL Server Management Studio)并运行了代码。
在查询PageSEO
表时,我收到了这个错误:
对象名称“PageSEO”无效。
我得到了数据库的新副本,恢复了数据库并得到了同样的错误。我可以在 SSMS 中看到该表,我可以在那里查询它,但在应用程序中,它会引发错误。
代码:
d@{
Page.Title = "Home";
var ID = -1;
var title = "";
var desc = "";
var db = Database.Open("XXX2013");
var sqlCommand = "SELECT TOP 1 pressReleaseID, pressTitle, LEFT(pressText, 315) as shortdesc FROM PressReleases ORDER BY pressDate DESC";
var featured = db.QuerySingle(sqlCommand);
ID = featured["pressReleaseID"];
title = featured["pressTitle"];
desc = featured["shortdesc"];
var sql2 = "SELECT * from PageSEO WHERE SEOPage = @0";
//THIS IS TEST CODE to verify connection to other tables
var sql3 = "SELECT * FROM Brokers WHERE brokerLast = @0";
int x = db.Query(sql3, "Smith").Count();
int y = x;
int y = x;
//END TEST
}
@section metas{
@foreach (var page in db.Query(sql2, "Home")) //ERROR IS THROWN HERE
{
<meta name="title" content="@page.SEOTitle" />
<meta name="description" content="@page.SEODesc " />
<meta name="keywords" content="@page.SEOKeywords" />
}
}
我已经仔细检查了数据库名称、列名等。此表的权限没有什么不同。该表的唯一不同之处在于它是最近创建的,但是当我进行还原时,这无关紧要,不是吗?
我尝试过的一些事情。
- 我放下桌子并创建了一个新的,就像它一样。同样的问题。
- 我还删除了整个数据库,创建了一个新数据库并进行了新的恢复和同样的问题。
- 在一次测试运行中,在代码的测试部分,我故意拼错了表名并得到了同样的错误:无效的对象名'BrokersX'
- 我已经为所有其他表运行了测试代码并获得了所有表的记录数。
当 C# 可以看到所有其他表时,为什么不能看到此表?几乎每一页都引用了该表。