2017-02-04 98 views
0

編輯:我使用Devart LinqConnect模型。我認爲這是一個實體框架。所以我得到數據與LinqtoSQLiteDataContext _conn = new LinqtoSQLiteDataContext();當我使用var persons = _conn.persons;,它帶來了我從person表中的所有數據。它將你知道的表格複數化。從索引獲取價值與索引

我得到DATAS從sqlite的文件是這樣的:

var persons = _conn.persons; 
foreach (var person in persons) 
{ 
    var r = radGridView1.Rows.AddNew(); 
    r.Cells[0].Value = person.Id; 
    r.Cells[1].Value = person.Name; 
    r.Cells[2].Value = person.Surname; 
    r.Cells[3].Value = person.Age; 
} 

當我使用Bing方法,它帶給我的所有列,但我不希望它。我想在RadGridView中顯示一些列。所以我以編程方式創建網格列。但我認爲這種方法是非常業餘的。我想用迭代號(索引)迭代一行中的數據。我認爲這將是這樣的:

var persons = _conn.persons; 
var i = 0; 
foreach (var person in persons) 
{ 
    var r = radGridView1.Rows.AddNew(); 
    r.Cells[i].Value = ?????; 
    i++; 
} 

對於這一點,我想那一定是這樣的:r.Cells[i].Value = person.columns[i].Value;但我不知道,寫什麼,而不是問號?

回答

0

我不知道如何寫標記,但我有另一種方式來做到這一點。

什麼類型的persons在你的代碼? 我想這是一個List<Person>,如果是這樣的話,這段代碼會很好。

//using System.ComponentModel; 
var persons = _conn.persons; 
radGridView1.DataSource = new BindingList<Person>(persons); 

或者,如果它是一個DataTable,使用下面的代碼:

var persons = _conn.persons; 
radGridView1.DataSource = persons; 

如果兩個以上都是假的,我們可以繼續討論如何解決它。

對於業餘或專家只是一個經驗問題。

+0

Firstl,謝謝。我正在使用Devart LinqConnect模型。我認爲這是一個實體框架。因此,我使用'LinqtoSQLiteDataContext _conn = new LinqtoSQLiteDataContext();'獲取數據''當我使用'var persons = _conn.persons;'時,它將所有數據從'person'表中提取出來。它將你知道的表格複數化。它給我帶來了所有專欄,但我不想要它。我想在RadGridView中顯示一些列。所以我以編程方式創建網格列。爲此,我認爲它一定是這樣的:'r.Cells [i] .Value = person.columns [i] .Value;'但我不知道如何。 –

+0

當您的鼠標移動到IDE中的人員時,工具提示會顯示什麼內容? –

+0

'Devart.Data.Linq.Table persons' –