C# 使用LINQ to SQL自定义Gridview中的列

C# 使用LINQ to SQL自定义Gridview中的列,c#,asp.net,sql,linq,gridview,C#,Asp.net,Sql,Linq,Gridview,作为一名编程爱好者,我曾尝试复制一些代码。该表单使用LINQ to SQL将托管共享数据库中的数据绑定到Gridview。页面工作正常,直到我在代码背后创建了一些与我在视频中看到的非常相似的C代码。事务ID是主键和数据表。这段视频我至少看了十几遍,都没能发现我的问题。我在这个网站上看到了一些类似的问题,但还没有为我找到解决方案。如果使用选择方法1,则会填充gridview,但在使用方法2时不会 using System; using System.Collections.Generic; usi

作为一名编程爱好者,我曾尝试复制一些代码。该表单使用LINQ to SQL将托管共享数据库中的数据绑定到Gridview。页面工作正常,直到我在代码背后创建了一些与我在视频中看到的非常相似的C代码。事务ID是主键和数据表。这段视频我至少看了十几遍,都没能发现我的问题。我在这个网站上看到了一些类似的问题,但还没有为我找到解决方案。如果使用选择方法1,则会填充gridview,但在使用方法2时不会

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{

    DataClasses2DataContext db = new DataClasses2DataContext();

    var q = from t in db.Transactions

            //selection method 1
            //select t;

            //selection method 2
            select new
            {
                //ID2 = t.Transaction_ID,
                Date = t.Date,
                Type = t.Transaction_Type,
                Group = t.Group,
                Name = t.Name,
                Effective_Session = t.Effective_Session

            };

    e.Result = q;
}
}

以下是ASPX代码:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AllowSorting="True" AutoGenerateColumns="True" DataKeyNames="Transaction_ID" 
    DataSourceID="LinqDataSource1">

</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="DataClasses2DataContext" EntityTypeName="" 
    onselecting="LinqDataSource1_Selecting" TableName="Transactions">
</asp:LinqDataSource>
</asp:Content>

下面是一段dbml代码:

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Transactions")]
public partial class Transaction : INotifyPropertyChanging, INotifyPropertyChanged
{

    private static PropertyChangingEventArgs emptyChangingEventArgs = new           PropertyChangingEventArgs(String.Empty);

private int _Transaction_ID;
private string _League;
private string _Season;
private string _Session;
private System.Nullable<System.DateTime> _Date;
private string _Effective_Session;
private string _Team;
private string _Transaction_Type;
private string _Group;
private System.Nullable<double> _Round;
private System.Nullable<double> _Pick;
private System.Nullable<double> _Overall;
private System.Nullable<double> _Player_ID;
private string _Name;
private System.Nullable<double> _F15;
private System.Nullable<double> _F16;
private System.Nullable<double> _F17;
private System.Nullable<double> _F18;
private System.Nullable<int> _F19;
private System.Nullable<double> _F20;
private System.Nullable<int> _F21;
private System.Nullable<int> _F22;
private System.Nullable<double> _F23;
private System.Nullable<double> _F24;
private string _F25;
private System.Data.Linq.Binary _upsize_ts;

#region Extensibility Method Definitions
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();
partial void OnTransaction_IDChanging(int value);
partial void OnTransaction_IDChanged();
partial void OnLeagueChanging(string value);
partial void OnLeagueChanged();
partial void OnSeasonChanging(string value);
partial void OnSeasonChanged();
partial void OnSessionChanging(string value);
partial void OnSessionChanged();
partial void OnDateChanging(System.Nullable<System.DateTime> value);
partial void OnDateChanged();
partial void OnEffective_SessionChanging(string value);
partial void OnEffective_SessionChanged();
partial void OnTeamChanging(string value);
partial void OnTeamChanged();
partial void OnTransaction_TypeChanging(string value);
partial void OnTransaction_TypeChanged();
partial void OnGroupChanging(string value);
partial void OnGroupChanged();
partial void OnRoundChanging(System.Nullable<double> value);
partial void OnRoundChanged();
partial void OnPickChanging(System.Nullable<double> value);
partial void OnPickChanged();
partial void OnOverallChanging(System.Nullable<double> value);
partial void OnOverallChanged();
partial void OnPlayer_IDChanging(System.Nullable<double> value);
partial void OnPlayer_IDChanged();
partial void OnNameChanging(string value);
partial void OnNameChanged();
partial void OnF15Changing(System.Nullable<double> value);
partial void OnF15Changed();
partial void OnF16Changing(System.Nullable<double> value);
partial void OnF16Changed();
partial void OnF17Changing(System.Nullable<double> value);
partial void OnF17Changed();
partial void OnF18Changing(System.Nullable<double> value);
partial void OnF18Changed();
partial void OnF19Changing(System.Nullable<int> value);
partial void OnF19Changed();
partial void OnF20Changing(System.Nullable<double> value);
partial void OnF20Changed();
partial void OnF21Changing(System.Nullable<int> value);
partial void OnF21Changed();
partial void OnF22Changing(System.Nullable<int> value);
partial void OnF22Changed();
partial void OnF23Changing(System.Nullable<double> value);
partial void OnF23Changed();
partial void OnF24Changing(System.Nullable<double> value);
partial void OnF24Changed();
partial void OnF25Changing(string value);
partial void OnF25Changed();
partial void Onupsize_tsChanging(System.Data.Linq.Binary value);
partial void Onupsize_tsChanged();
#endregion

public Transaction()
{
    OnCreated();
}

[global::System.Data.Linq.Mapping.ColumnAttribute(Name="[Transaction ID]",     Storage="_Transaction_ID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true, UpdateCheck=UpdateCheck.Never)]
public int Transaction_ID
{
    get
    {
        return this._Transaction_ID;
    }
    set
    {
        if ((this._Transaction_ID != value))
        {
            this.OnTransaction_IDChanging(value);
            this.SendPropertyChanging();
            this._Transaction_ID = value;
            this.SendPropertyChanged("Transaction_ID");
            this.OnTransaction_IDChanged();
        }
    }
}

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_League", DbType="NVarChar(255)", UpdateCheck=UpdateCheck.Never)]
public string League
{
    get
    {
[global::System.Data.Linq.Mapping.TableAttribute(Name=“dbo.Transactions”)]
公共部分类事务:INotifyPropertyChanged、INotifyPropertyChanged
{
私有静态属性ChangingEventArgs emptyChangingEventArgs=新属性ChangingEventArgs(String.Empty);
私有int交易ID;
私人弦乐联盟;
私人弦乐季;
私有字符串会话;
私有系统。可为空的_日期;
私有字符串有效会话;
私人弦乐队;
私有字符串_事务_类型;
私有字符串组;
私有系统。可为空的_轮;
私有系统。可空_Pick;
私有系统。总体上为空;
私有系统。可为空的玩家ID;
私有字符串\u名称;
私有系统。可空F15;
私有系统。可空_F16;
私有系统。可空_F17;
私有系统。可为空_F18;
私有系统。可为空_F19;
私有系统。可为空F20;
私有系统。可为空F21;
私有系统。可空F22;
私有系统。可空F23;
私有系统。可空F24;
私有字符串_F25;
private System.Data.Linq.Binary\u upsize\u ts;
#区域扩展性方法定义
局部空腔加载();
部分无效OnValidate(System.Data.Linq.ChangeAction);
部分空白一经处理();
部分无效转换(int值);
部分无效的操作_IDChanged();
仅适用于部分无效值更改(字符串值);
仅部分无效已更改();
季节变化时的局部空隙(字符串值);
季节变化时的部分无效();
部分无效OnSessionChanged(字符串值);
部分无效OnSessionChanged();
部分无效日期更改(System.Nullable值);
部分无效OnDateChanged();
部分无效有效会话更改(字符串值);
部分无效有效会话已更改();
部分无效(字符串值);
部分无效,已更改();
部分无效的转换类型更改(字符串值);
部分无效的操作类型已更改();
部分无效值(字符串值);
部分无效(已更改)();
局部无效(System.Nullable值);
局部无效,已更改();
部分无效值(System.Nullable值);
部分void OnPickChanged();
整体变化的部分无效(System.Nullable值);
整体上部分无效();
部分无效(System.Nullable值);
播放器_IDChanged()上的部分无效;
更改名称时部分无效(字符串值);
部分无效OnNameChanged();
F15更改时的部分无效(System.Nullable值);
f15changed()上的部分无效;
F16更改时的部分无效(System.Nullable值);
f16changed()上的部分无效;
f17更改时部分无效(System.Nullable值);
f17上的部分无效已更改();
F18更改时部分无效(System.Nullable值);
f18changed()上的部分无效;
F19更改时部分无效(System.Nullable值);
f19上的部分无效已更改();
F20更改时部分无效(System.Nullable值);
F20Changed()上的部分无效;
F21变更时部分无效(系统可空值);
F21上的部分无效已更改();
F22Changing上的部分无效(System.Nullable值);
F22上的部分无效已更改();
F23Changing上的部分无效(System.Nullable值);
f23上的部分无效已更改();
F24更改时部分无效(系统可空值);
f24上的部分无效已更改();
F25CHANGING部分无效(字符串值);
F25Changed()上的部分无效;
部分无效操作更改(System.Data.Linq.Binary值);
部分无效的Onupsize_tsChanged();
#端区
公开交易()
{
OnCreated();
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Name=“[Transaction ID]”,Storage=“\u Transaction\u ID”,AutoSync=AutoSync.OnInsert,DbType=“Int NOT NULL IDENTITY”,IsPrimaryKey=true,IsDbGenerated=true,UpdateCheck=UpdateCheck.Never)]
公共int事务\u ID
{
收到
{
返回此。\u事务\u ID;
}
设置
{
if((此._事务_ID!=值))
{
此.OnTransaction_IDChanging(值);
此参数为.SendPropertyChanging();
此.\u事务\u ID=值;
此。SendPropertyChanged(“交易ID”);
此.OnTransaction_IDChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage=“_-League”,DbType=“NVarChar(255)”,UpdateCheck=UpdateCheck.Never)]
公共弦乐团
{
收到
{
以下是错误:

DataBinding: '<>f__AnonymousType1`6[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089],[System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, 
    PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],
    [System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, 
    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, 
    Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, 
    Culture=neutral, PublicKeyToken=b77a5c561934e089]]' does not contain a property with the name 'Transaction_ID'.
DataBinding:'f_uuanonymoustype1`6[[System.Int32,mscorlib,Version=4.0.0.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089],[System.Nullable`1[[System.DateTime,mscorlib,Version=4.0.0.0,Culture=neutral,
PublicKeyToken=b77a5c561934e089]],mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089],
[System.String,mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089],[System.String,
mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,
Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,Version=4.0.0.0,
Culture=neutral,PublicKeyToken=b77a5c561934e089]]”不包含名为“Transaction_ID”的属性。

当您取消注释这一行时,您的代码是否可以工作

//ID2 = t.Transaction_ID,
如果要从数据源中选择要显示的值,则需要继续在GridView标记中设置列(并设置<columns> <asp:BoundField DataField="Date" HeaderText="Date"/> <asp:BoundField DataField="Type" HeaderText="Type"/> <asp:BoundField DataField="Group" HeaderText="Group"/> <asp:BoundField DataField="Name" HeaderText="Name"/> <asp:BoundField DataField="Effective_Session" HeaderText="Effective Session"/> </columns>