10

GridViewonを設定するlinqクエリがありますPage_Loadforアルファベットの文字のループを作成しました。にデータを入力する.Commandで、クエリで同じパラメータを使用して非常によく似たクエリを実行すると、以下のエラーが発生します。LinkButtonLinkButton

タイプ '<>f__AnonymousType2' は 'ConcernContracts.dll' と 'System.Web.WebPages.Deployment.dll' の両方に存在します

void lnkCharacter_Command(object sender, CommandEventArgs e)
{
    try
    {
        var lbtn = (LinkButton)lbl_Alphabet.FindControl("lnkCharacter" + e.CommandArgument);
        var id = lbtn.Text;

        using (var db = new dbDataContext())
        {
            var query = from n in db.tbl_Providers
                        where ((n.provider_Name.StartsWith(id)) && (n.provider_Deleted == false))
                        select new
                        {
                            n.ProviderId,
                            n.provider_Name
                        };

            grd_Provider.DataSource = null;
            grd_Provider.DataSource = query;
            grd_Provider.DataBind();
        }
    }
    catch (SystemException ex) { }
}

.StartsWith()LoadGrid() も同じですが、条件を使用しません。エラーを解決する方法はありますか?

このエラーは例外をスローしませんが、どちらのクエリのグリッドにもデータを入力しません。エラーは次の行で発見されました。grd_Provider.DataSource = query;

4

5 に答える 5

2

グリッド データ ソースを変更する

grd_Provider.DataSource = query.ToList();
grd_Provider.DataBind();

または、Provider Id と Name の 2 つのプロパティを持つ List を作成し、このような出力からそのリストをバインドします。

 List<Entities> abc=query.ToList();
 grd_Provider.DataSource =abc;
 grd_Provider.DataBind();
于 2013-04-12T10:54:04.507 に答える
0

Listまたはに変換します。IEnumberable匿名オブジェクトをデータソースとしてグリッドビューに渡すことはできません。query.ToList();

戻り値の型を次のように変換できます

IEnumerable<object>

任意の匿名型を保持でき、データソースとして簡単にバインドできます

于 2013-03-18T06:45:56.633 に答える
-1

Linq は、.toDays()、.addDays()、.StartsWith() などの一部の機能をサポートしていません。したがって、最初に .StartsWith() を使用せずに結果を取得してから、結果の StartsWith 特定の ID をフィルタリングする機能を適用してみてください。

于 2013-12-17T12:43:40.513 に答える