gpt4 book ai didi

c# - DataRow 获取 C# 中联接表的重复列的值

转载 作者:行者123 更新时间:2023-11-29 12:24:29 24 4
gpt4 key购买 nike

我有以下查询

string query = string.Format("select * from `{0}` inner join `{1}` on `{0}`.Id = `{1}`.RecordId where recordid= {2}", tableName, GetAuditTableName(tableName), context.RecordId);

我通过以下方式执行此查询:

MySqlCommand cmd = new MySqlCommand(query, conn);
conn.Open();
DataTable dtRecords = new DataTable();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
dtRecords.Load(reader);
}
conn.Close();
List<AuditLog> records = new List<AuditLog>();
foreach (DataRow row in dtRecords.Rows)
{
records.Add(new AuditLog
{
CreatedOn = row["CreatedOn"] != DBNull.Value ? Convert.ToDateTime(row["CreatedOn"].ToString()) : DateTime.MinValue,
});
}

所以这里我使用DataRow来一条一条地获取记录。但我的问题是两个表中有两个相同的列,即 CreatedOn 。在这里,我想从 Join 表中选择 CreatedOn 列值,并从第一个表中选择其他列值。我如何选择这个值?

最佳答案

更改查询并为连接表中的列使用别名。喜欢:

select table1.*, table2.CreatedOn as CreatedOn2 from `{0}` as table1 inner join `{1}` as table2 on table1.Id = table2.RecordId where table2.recordid= {2}

然后选择CreatedOn2字段,

CreatedOn = row["CreatedOn2"] != DBNull.Value ? Convert.ToDateTime(row["CreatedOn2"].ToString()) : DateTime.MinValue

谢谢。

关于c# - DataRow 获取 C# 中联接表的重复列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28541518/

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