新しい 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" />
}
}
データベース名、列名などを再確認しました。このテーブルの権限は同じです。このテーブルの唯一の違いは、最近作成されたということですが、復元を行う場合、それは問題ではないはずです。
私が試したいくつかのこと。
- テーブルを削除して、同じように新しいテーブルを作成しました。同じ問題。
- また、データベース全体を削除し、新しいデータベースを作成して、新しい復元と同じ問題を実行しました。
- あるテスト実行で、コードのテスト セクションで、意図的にテーブル名のスペルを間違えて、同じエラーが発生しました: Invalid object name 'BrokersX'
- 他のすべてのテーブルに対してテスト コードを実行し、それらすべてのレコード数を取得しました。
他のすべてのテーブルを表示できるのに、C# がこのテーブルを表示できないのはなぜですか? この表は、ほぼすべてのページで参照されています。