我正在使用Microsoft Visual Studio,并使用C#在ASP.net中进行编码。如何将csv文件绑定到下拉列表?
我有一个下拉列表,我希望以编程方式绑定到csv文件。我不知道如何或从哪里开始。
我以前绑定到ACCESS数据库(.mdb),但不知道csv如何工作。 有人可以请指导我。
我正在使用Microsoft Visual Studio,并使用C#在ASP.net中进行编码。如何将csv文件绑定到下拉列表?
我有一个下拉列表,我希望以编程方式绑定到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] };
然后,在this article读取(并随时给它,如果它是有帮助),以了解如何绑定到特定的值该集合使用DisplayMemberPath
,以及如何使用SelectedValuePath
来定位特定的位。
这应该在路上设置你的光明未来:)
编辑:
LINQ的是你的朋友......它可以让你把你的对象的集合像一个SQL查询。一旦你了解了它,你可以实现的目标是惊人的。这是一个很好的链接,开始101 linq examples。
你甚至可以做这样的事情,以获取该文件的读入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.Gender
或some_obj.Race
:)
的事情,如果你要打印它们都是:
foreach (var obj in collection_of_objects)
Console.Out.WriteLine("Some obj fields: {0}, {1}, {2}" , obj.ID, obj.First, obj.Race);
感谢您的回复,我会试着记住,我不知道Linq是什么。所以接下来我要做的就是熟悉linq。 – Timetraveller
我真的很感谢你的帮忙。现在我有很多例子可以在周末练习和学习。非常感谢。在这篇文章中,我会回到你身边。 – Timetraveller
Oy,盎司配偶以及... :)总是很乐意提供帮助。愿你的团队赢得灰烬...... – Noctis
你需要什么来绑定到什么? CSV的内容是什么? – Noctis
首先,您需要将csv文件的内容读入列表或“DataTable”,然后将“ComboBox”绑定到该对象。 –
您还可以使用CSV驱动程序的SQL驱动程序 – Jack