#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怎么合并?我想在加一个字段(即上面的工资*/汇总字段)
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怎么合并?我想在加一个字段(即上面的工资*/汇总字段)
不大清楚你的意思
这行代码是我对所有成员的"工资"的汇总而已.
现在的需求是,用 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...
var allMember = from member in _linq.批次确认公示人员信息表_xls_s
where member.工资 > 0
select new {
序号 = member.序号,
主管单位 = member.主管单位,
职位编码 = member.职位编码,
姓名 = member.姓名,
性别 = member.性别,
出生年月 = member.出生年月,
毕业院校_工作单位 = member.毕业院校_工作单位,
工资 = member.工资
};这样写,数据已经加载到内存了。
#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的时候才查找么?
错了...绑定就相当于 foreach 是吧..
那版主你说,这里我用了Linq To SQL的话,这是属于强类型(相对于DataTable来说),将查询结果绑定到 GridView中,但是现在我只想加那么新的字段(即上面我说的汇总).这个怎么办哈....不能总每次都换个解决方案吧...不想全部更新,用TataTable代替...代码怎么写哈...