我有一個結果集一樣 -如何在C#中按列循環或遍歷結果集或記錄集?
ID, Name, Address
1,John, Japan
2,Sarah, UK
3,Jeremy, USA
我希望能夠在結果集/記錄集,選擇任一列從上面,然後遍歷該列的行。我怎麼做 ?
我有一個結果集一樣 -如何在C#中按列循環或遍歷結果集或記錄集?
ID, Name, Address
1,John, Japan
2,Sarah, UK
3,Jeremy, USA
我希望能夠在結果集/記錄集,選擇任一列從上面,然後遍歷該列的行。我怎麼做 ?
考慮添加一個擴展方法來SqlDataReader
從給定的列讀取所有值,像這樣:
static IEnumerable<T> ReadColumn<T>(this SqlDataReader rdr, int index) {
while (rdr.Read()) {
yield return (T)rdr.GetValue(index);
}
}
有了這個方法,你應該能夠從您的查詢像這樣讀一列:
var i = 1;
foreach (string name in cmd.ExecuteReader().ReadColumn<string>(1)) {
Console.WriteLine("Name {0} = {1}", i++, name);
}
你應該樹添加屬性的對象(例如,人):ID,姓名和地址
然後可以創建包含該類型的對象的列表。
例如:
List<Person> persons;
var names = persons.Select(p => Name);
你可以做所有三個屬性是相同的。
有用的信息。但是,是否有一種簡單的方法可以在沒有擴展方法的情況下執行? – Steam
@blasto據我所知。我們公司在生產代碼中使用擴展方法,並且工作正常。 – dasblinkenlight
更簡單的方法 - DataTable dt =一些數據表; DataColumn col = dt.Columns [「ColumnYouWant」];使用http://beyondrelational.com/modules/2/blogs/106/posts/11133/ssis-reading-object-variable-in-script-task.aspx – Steam