#region 连接数据库.
        private string _strConn = @"Data Source=.\SQLExpress;Initial Catalog=DB_Person;Integrated Security=True";   //连接字符串.
        private LinqProcessSalaryDataContext _linq; //linq连接对象.
        #endregion_linq = new LinqProcessSalaryDataContext(_strConn);
            var allMember = from member in _linq.批次确认公示人员信息表_xls_s
                            where member.工资 > 0
                            select new {
                                序号 = member.序号,
                                主管单位 = member.主管单位,
                                职位编码 = member.职位编码,
                                姓名 = member.姓名,
                                性别 = member.性别,
                                出生年月 = member.出生年月,
                                毕业院校_工作单位 = member.毕业院校_工作单位,
                                工资 = member.工资
                            };
            decimal? sumSalary = allMember.Sum(employee => employee.工资);//这是工资的汇总.
/*我不想通过 DataTable做,用Linq合并,比如 Zip怎么合并?我想在加一个字段(即上面的工资*/汇总字段)

解决方案 »

  1.   

    decimal? sumSalary = allMember.Sum(e=> e.汇总字段);
    不大清楚你的意思
      

  2.   


    这行代码是我对所有成员的"工资"的汇总而已.
    现在的需求是,用 DataGridView中显示 var allMember = from member in _linq.批次确认公示人员信息表_xls_s
                                where member.工资 > 0
                                select new {
                                    序号 = member.序号,
                                    主管单位 = member.主管单位,
                                    职位编码 = member.职位编码,
                                    姓名 = member.姓名,
                                    性别 = member.性别,
                                    出生年月 = member.出生年月,
                                    毕业院校_工作单位 = member.毕业院校_工作单位,
                                    工资 = member.工资
                                };
    但是我想再加那条汇总,所以不懂怎么加.
    我不想用 DataTable 来做,是因为貌似要重新用到 DataSet,但是这样的话,就不用到 Linq To Server...
      

  3.   


    var allMember = from member in _linq.批次确认公示人员信息表_xls_s
                                where member.工资 > 0
                                select new {
                                    序号 = member.序号,
                                    主管单位 = member.主管单位,
                                    职位编码 = member.职位编码,
                                    姓名 = member.姓名,
                                    性别 = member.性别,
                                    出生年月 = member.出生年月,
                                    毕业院校_工作单位 = member.毕业院校_工作单位,
                                    工资 = member.工资
                                };这样写,数据已经加载到内存了。
      

  4.   


    #region "连接数据库"
            private string strConn = @"Data Source=.\SQLExpress;Initial Catalog=DB_Person;Integrated Security=True";
            private SqlDataAdapter adapter;
            #endregion
            public Form1() {
                InitializeComponent();
                this.Load += (sender, e) => InitializeData(sender, e);
            }        //初始化加载.
            void InitializeData(object sender, EventArgs e) {
                using(SqlConnection connect = new SqlConnection(strConn)) {
                    string query = "select * from [批次确认公示人员信息表#xls$]";
                    DataSet set = new DataSet();
                    adapter = new SqlDataAdapter(query, connect);
                    adapter.Fill(set, "批次确认公示人员信息表#xls$");
                    //添加汇总.
                    var all = from member in set.Tables["批次确认公示人员信息表#xls$"].AsEnumerable()
                              where member.Field<decimal>("工资") > 0
                              select member;
                    decimal? dSum = all.Sum(employee => employee.Field<decimal>("工资"));
                    DataTable tempTable = set.Tables["批次确认公示人员信息表#xls$"];
                    //汇总字段.
                    tempTable.Columns.Add("工资汇总");
                    tempTable.Rows[0]["工资汇总"] = dSum;   //table.Rows[RowIndex][ColumnName].
                    dataGV.DataSource = tempTable;
                }
            }//版主,我的意思是这样,如果不用 Linq To SQL的话...
    另外想问楼主的是,你说的那个,貌似不是还没有查询的不是么?在Linq中,不是在比如foreach的时候才查找么?
      

  5.   

    不是foreach的时候才查,是使用的时候才查,foreach只是一种使用的方式,其他的还有ToList()等,跟grid绑定也是
      

  6.   

    不是foreach的时候才查,是使用的时候才查,foreach只是一种使用的方式,其他的还有ToList()等,跟grid绑定也是
    错了...绑定就相当于 foreach 是吧..
      

  7.   

    不是foreach的时候才查,是使用的时候才查,foreach只是一种使用的方式,其他的还有ToList()等,跟grid绑定也是
    那版主你说,这里我用了Linq To SQL的话,这是属于强类型(相对于DataTable来说),将查询结果绑定到 GridView中,但是现在我只想加那么新的字段(即上面我说的汇总).这个怎么办哈....不能总每次都换个解决方案吧...不想全部更新,用TataTable代替...代码怎么写哈...