gpt4 book ai didi

c# - 结果集存储在模型上 - C# .NET 2.0

转载 作者:太空狗 更新时间:2023-10-30 01:06:25 25 4
gpt4 key购买 nike

我有一个函数可以获取数据库中的数据。下面是代码。

        public DataTable getAllTransaction(OleDbConnection conn)
{
OleDbDataAdapter oleAdapter = new OleDbDataAdapter();
string query = "";
DataTable tblResult = new DataTable();

query = @"SELECT t.id AS `Transaction ID`,
c.id AS `Client ID`,
c.clientname AS `Client Name`,
t.cashvalue AS `Cash Value`,
t.amount AS `Amount`,
t.transdate AS `Transaction Date`,
t.remarks AS `Remarks`
FROM client AS c
INNER JOIN `transaction` AS t
ON c.id=t.clientid";
oleAdapter.SelectCommand = new OleDbCommand(query, conn);
oleAdapter.Fill(tblResult);

return tblResult;
}

我的问题是,如何将结果集存储到模型中(例如,我不想返回 DataTable)。下面是我的模型类。

Class TransactionModel
{
public int transID { get; set; }
public int clientID { get; set; }
public string clientName { get; set; }
public double cashValue { get; set; }
public double amout { get; set; }
public DateTime transDate { get; set; }
public string remarks { get; set; }
}

最佳答案

您可以使用 LINQ 并执行以下操作:

var tranModel = from r in tblResult.Tables[0]
select new TransactionModel
{
transId = r.Field<int>("transID"),
clientId = r.Field<int>("clientId"),
clientName = r.Field<string>("ClientName")
}

请注意,因为您使用的是 .NET 2.0。 LINQ 不能直接使用。你将不得不使用类似 LINQBridge 的东西:http://www.albahari.com/nutshell/linqbridge.aspx

另一种方法是遍历 tblResult 中的所有行,并获得一个通用的 TransactionModel 列表。例如:

 List<TransactionModel> tModels = new List<TransactionModel>();
foreach (var row in tblResult.Tables[0].Rows)
{
tModels.Add(new TransactionModel
{
transId = row["TransId"],
clientId = row["ClientId"],
clientName = row["clientName"]
});
}

关于c# - 结果集存储在模型上 - C# .NET 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15520862/

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