0

新しい Web アプリ プロジェクトを継承しました。これは C#/MVC Razor Engine プロジェクトです。開発環境 (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. あるテスト実行で、コードのテスト セクションで、意図的にテーブル名のスペルを間違えて、同じエラーが発生しました: Invalid object name 'BrokersX'
  4. 他のすべてのテーブルに対してテスト コードを実行し、それらすべてのレコード数を取得しました。

他のすべてのテーブルを表示できるのに、C# がこのテーブルを表示できないのはなぜですか? この表は、ほぼすべてのページで参照されています。

4

0 に答える 0