0

我继承了一个新的网络应用程序项目。这是一个 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" />
    }
}

我已经仔细检查了数据库名称、列名等。此表的权限没有什么不同。该表的唯一不同之处在于它是最近创建的,但是当我进行还原时,这无关紧要,不是吗?

我尝试过的一些事情。

  1. 我放下桌子并创建了一个新的,就像它一样。同样的问题。
  2. 我还删除了整个数据库,创建了一个新数据库并进行了新的恢复和同样的问题。
  3. 在一次测试运行中,在代码的测试部分,我故意拼错了表名并得到了同样的错误:无效的对象名'BrokersX'
  4. 我已经为所有其他表运行了测试代码并获得了所有表的记录数。

当 C# 可以看到所有其他表时,为什么不能看到此表?几乎每一页都引用了该表。

4

0 回答 0