0

私はこれまでLINQで何もしていませんが、MySQLの経験はあります。

私はMicrosoft®ASP.NET4Stepby Stepの232ページにいますが、この本はクールなLINQについて話し始めています。

この本では、最初のLINQクエリを入力するように指示されていますが、コマンドとコマンドが認識されないためwhere、VisualStudioから19個のエラーが発生しました。orderbyselect

以下は本からのコードです:

ブックコード

以下は私のコードです(Visual Studioが気に入らないものを確認できるようにスクリーンショットの形式で):

mycode

私は何が間違っているのですか?

ありがとうございました

4

6 に答える 6

4

Linqクエリでは、「<>」が付いたTechnologyDescriptorタグがバーフィングしています。あなたがする必要があるのは、technologyDescriptorリストの個々のアイテムの名前付き変数インスタンスを指定することです。例えば:

GridView1.DataSource = from td in technologyDescriptor where td.TechnologyName.Contains(".Net") == true order by td.TechologyName.Length
select td.TechnologyName.ToUpper();

このクエリは、technologyDesciptorリストをループしているforeachループに似ており、「td」は各ループの個別のレコードであると考えることができます。

于 2012-05-29T19:03:09.210 に答える
2

たとえば、TechnologyDescriptor の周りに不必要な山かっこ (<>) があります。

于 2012-05-29T18:57:17.493 に答える
2

変数名 technologyDescriptor を山かっこで囲みました。コードからこれらのブラケットを削除してください。

于 2012-05-29T18:57:54.433 に答える
1

「from technologyDescriptor in...」と言う必要があります。from <TechnologyDescriptor>

于 2012-05-29T18:57:44.183 に答える
1

変数の使用法が少しずれています。また、technologyDescriptorコレクションですか?

その場合は、コードを次のように変更します。

GridView1.DataSource = from t in technologyDescriptor
                       where t.TechnologyName.Contains(".NET")
                       orderby t.TechnologyName.Length
                       select t.TechnologyName.ToUpper();
于 2012-05-29T19:00:46.170 に答える
0

linq クエリの問題に加えて、スクリーン ショットは変数スコープの問題があることを示しています。具体的にはtechnologyDescriptor、2 つの異なるものを参照するために使用しています。フォームに「technologyDescriptor」と呼ばれるコントロール、または部分クラスの別の部分で宣言されたその名前のフィールドがありますか?

于 2012-05-29T20:37:01.797 に答える