簡體   English   中英

如何將csv文件綁定到下拉列表?

[英]How to bind csv file to a drop down list?

我正在使用Microsoft Visual Studio,並使用C#在ASP.net中編碼。

我有一個下拉列表,我希望以編程方式綁定到csv文件。 我不知道如何或從哪里開始。

我以前綁定到ACCESS數據庫(.mdb)但不知道csv如何工作。 有人可以指導我。

好吧,看來你必須閱讀它,解析它並綁定它。

現在,我認為最簡單的方法是使用linq構建一個自定義的對象集合,然后根據需要綁定它們。

我們假設您的CSV具有name,age以簡化。 首先,將所有行讀入集合(使用您的首選方法),讓我們假設它是InputLines

使用linq獲得一個很好的對象集合:

var my_objects_collection =  
    from line in InputLines
    let parts = line.Split(',')
    select new { name = parts [0], age =  parts [1] };

然后,閱讀本文 (並且可以隨意評估它是否有用)了解如何使用DisplayMemberPath綁定到該集合的特定值,以及如何使用SelectedValuePath來定位特定的從那里開始。

這應該會讓你走向光明的未來:)


編輯:
Linq是你的朋友......它可以讓你像對待SQL查詢一樣對待你的對象集合。 一旦你了解它,你可以實現的是驚人的。 這是啟動101 linq示例的一個很好的鏈接。

你甚至可以做這樣的事情,以便將文件讀入linq表達式:

var collection_of_objects = 
    (from line in File.ReadAllLines("your_csv_name.csv").Skip(1)
        let parts = line.Split(',')
        select new
        {
            ID = parts[0],
            First = parts[1],
            Last = parts[2],
            Email = parts[3],
            Gender = parts[4],
            Race = parts[5]
        }
    ).ToList();

這條線:
File.ReadAllLines("your_csv_name.csv").Skip(1)
轉換為:跳過第一行后讀取所有行,在我的情況下包含標題: id,first_name,last_name,email,gender,race ,然后對於每一行,它將創建一個具有在new之后定義的屬性的對象(注意我正在使用let定義一個臨時變量來保存Split的結果)。
最后, ToList()用於獲取具有屬性的“真實”對象列表(沒有它,你將獲得一個可枚舉的,但你將無法使用像你將要做的那樣的屬性“真正的”類對象)。

這允許您執行以下操作:

var some_obj = collection_of_objects.Skip(10).Take(1);

為了獲取第11個對象,然后你可以做some_obj.Gendersome_obj.Race :)

如果你想打印它們全部:

foreach (var obj in collection_of_objects)
    Console.Out.WriteLine("Some obj fields: {0}, {1}, {2}" , obj.ID, obj.First, obj.Race);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM