gpt4 book ai didi

c# - 使用 LINQ 将 SQL 表转换为 CSV

转载 作者:行者123 更新时间:2023-12-02 22:36:28 25 4
gpt4 key购买 nike

我正在尝试将表格放入逗号分隔的 CSV 文件中。我目前是这样实现的:

var csv = new StringBuilder("id,Name,Address,City,State\n");
var delimiter = ",";
var newline = "\n";

using (var db = MyDatabase())
{
var query = from c in db.Customers select c;
foreach(var q in query)
csv.Append(q.id).Append(delimiter)
.Append(q.name).Append(delimiter)
.Append(q.address).Append(delimiter)
.Append(q.city).Append(delimiter)
.Append(q.state).Append(newline);
}

这会创建一个 csv 罚款。但我的问题是,是否有一种更简化的方法可以无需单独指定每一列来实现这一点?在某些情况下,我想做一个全选,但由于表格有很多列,这似乎有点笨拙。

最佳答案

为了在不指定要写入 CSV 的每个属性的情况下执行此操作,您需要使用反射。这是如何完成此操作的基本示例:

List<Customer> query = from c in db.Customers select c;
foreach (var q in query)
{
Type type = typeof(Customer);
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo property in properties)
{
string value = property.GetValue(type, null) != null
? property.GetValue(type, null).ToString()
: string.Empty; // or whatever you want the default text to be
csv.Append(q.id).Append(delimiter);
}
}

这将循环遍历查询中的每个 Customer,然后循环遍历 Customer 中的每个属性并写入值。这是假设您希望将 Customer 的每个属性写入 CSV 文件。这至少应该让您了解如何完成您想要完成的事情。

关于c# - 使用 LINQ 将 SQL 表转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com