0

わかりました、私は c# が初めてで、WebMatrix を使用しているという事実から始めます。ページの一部としてデータベース呼び出しを実行し、「カテゴリ」に固有の情報を取得してから、データベースからそのデータを使用してページに情報を配置しようとしています。データベース。以下は私のサンプルコードであり、私は何かを理解していないことを知っていますが、基本的にはデータベースからデータを取得します (これには、id、タイトル、説明などのカテゴリに関する多くのものが含まれます) IEnumerable (これは私がそれが何であるかを完全には理解していません) そして、CategoryTitle (データベースおよび結果セット内のフィールドの名前) を参照したいだけです。以下のコードを使用すると、次のエラーが表示されます。「コンパイラ エラー メッセージ: CS1061: 'システム。

「categoryData.CategoryTitle;」は知っています。一部が間違っていますが、私がしようとしていることをどのように行うのですか? foreach ループを使用して「foreach(var row in categoryData)」を実行し、「row.CategoryData」と言って動作させることができますが、結果のレコードは 1 つだけなので、そうする必要はないと感じています。設定。

@{

    Layout = "~/layouts/_layout.cshtml";

    var categoryID = 1;
    IEnumerable<dynamic> categoryData = null;

    var db = Database.Open("Connection"); 
    categoryData = db.Query("exec sp_get_Category @CategoryID=" + categoryID);

    Page.Title = categoryData.CategoryTitle;

}
4

1 に答える 1

0

そうしないと、コレクションからプロパティを取得しようとしています。試す

Page.Title = categoryData.First().CategoryTitle;

最初の結果のみを引き出しますが、結果がない場合は例外が発生します。FirstOrDefault()または、どちらが最初または null を返すかを実行できます。その後、null チェックを行うことができます。

var firstValue = categoryData.FirstOrDefault();
if(firstValue == null)
{
    Page.Title = "Some default title":
}
else
{
    Page.Title = firstValue;
}
于 2012-11-06T00:40:00.833 に答える