【发布时间】:2015-04-16 23:15:50
【问题描述】:
我有以下查询
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 列值,并从第一个表中选择其他列值。如何选择此值?
【问题讨论】:
-
为第二个表中的 CreatedOn 列设置另一个别名。或按列索引访问 dataRow 值(例如 row[0])
-
有什么方法可以选择像
row["table2.CreatedOn"]这样的值