0
在表單上是DGV,其中從數據庫中讀取信息(使用linq2sql類)。 有一個LINQ的要求,如:如何重新繪製DataGridView作爲linq查詢的結果
private void button1_Click_1(object sender, EventArgs e)
{using (linqWorkDataContext db = new linqWorkDataContext())
{
var regi = (from r in db.Registrs.ToList()
group r by new
{
Date = checkBox1.Checked ? (DateTime?)r.date : (DateTime?)null,
Company = checkBox2.Checked ? r.company : null,
City = checkBox3.Checked ? r.city : null,
Country = checkBox4.Checked ? r.country : null,
Manager = checkBox5.Checked ? r.manager : null,
} into g
select new
{
Date = checkBox1.Checked ? (DateTime?)g.Key.Date : (DateTime?)null,
Company = checkBox2.Checked ? g.Key.Company : null,
City = checkBox3.Checked ? g.Key.City : null,
Country = checkBox4.Checked ? g.Key.Country : null,
Manager = checkBox5.Checked ? g.Key.Manager : null,
Quantity = checkBox1.Checked || checkBox2.Checked || checkBox3.Checked || checkBox4.Checked || checkBox5.Checked ? g.Sum(s => s.quantity) : null,
Amount = checkBox1.Checked || checkBox2.Checked || checkBox3.Checked || checkBox4.Checked || checkBox5.Checked ? g.Sum(s => s.amount) : null,
}).Distinct();
registrDataGridView.DataSource = regi.ToList();
}
}
他的工作的結果,第一個屏幕中給出。用戶選擇必填字段並顯示金額和數量。 問題是僅顯示所選字段(屏幕上顯示空字段)。也就是說,如果用戶選擇了日期和公司,則會顯示日期,公司,數量和金額,而其他全部都丟失。 在第二個屏幕上,公司字段被選中,這就是我想要實現的。 (從另一個項目與另一個實施屏幕) 我該怎麼做?
我收到錯誤「對象引用不指向該對象的一個實例」每個字符串上 registrDataGridView.Columns [「Date」]。Visible = checkBox1.Checked;等等...... – SoftySh
有點奇怪,我已經在VS2016中自己測試過了,它工作的很好。你可以嘗試使用索引來查看這是否有效? – Chawin
與索引相同的錯誤 – SoftySh