2012年7月5日 星期四

[C#]當條件成立.變更背景顏色

當條件成立時,將該列的背景顏色變更

private void dgv_CellFormatting(object sender,DataGridViewCellFormattingEventArgs e)
{
try
{
DataGridView dgv = (sender as DataGridView);
if (dgv.Columns["dgvIsSelf"].Index == e.ColumnIndex)
{
if (Convert.ToBoolean(e.Value) == true) //是自費時,該列的顏色為黃色
{
dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Yellow;
}
else
{
dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
}
}
}
catch (Exception ex)
{
ex.ToString();
}


}

2012年7月4日 星期三

[LINQ]合併兩個DataTable

dt1:(id,name,add)
dt2:(id,tel)
要將dt1與dt2合併成
使用LINQ的LEFT JOIN
dt1有資料但dt2沒資料時,資料仍存在,沒有值的dt2就為預設值空白


var query =
 from a in dt1.AsEnumerable()
 join b in dt2.AsEnumerable()
   on a.Field("NAME") equals b.Field("NAME") into k
 from subpet in k.DefaultIfEmpty()
select new
{ ID = a.Field("ID"),
 NAME= a.Field("NAME"),
 ADD = a.Field("ADDRESS"),
 TEL = (subpet == null ? String.Empty: subpet.Field("TEL "))
)};