首页 > 解决方案 > Dapper 查询结果到 datagridview

问题描述

我已经映射了我的模型并在下面提出了以下代码。如何使用 datagridview 显示数据以及列名?

public class DivisionModel
{
    public int id { get; set; }
    public string DivisionName { get; set; }
}

public class EmployeeModel
{
    public int id { get; set; }
    public string FirstName { get; set; }
    public string MiddleName { get; set; }
    public string LastName { get; set; }
    public DivisionModel Division { get; set; }
}

using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db)))
{
    var sql = @"SELECT * FROM[Employee] em JOIN Division dv ON em.DivisionId = dv.id";
    var result = connection.Query<EmployeeModel, DivisionModel, EmployeeModel>(sql, (employee, division) => { employee.Division = division; return employee; });
    result.ToList().ForEach(employee => MessageBox.Show(($"FirstName: {employee.FirstName},MiddleName: {employee.MiddleName}, LastName: {employee.LastName},Division: {employee.Division.DivisionName}")));
}

标签: c#sql-serverdapper

解决方案


通常,简单地将列表指定为数据源就足够了,即

var data = result.ToList();
// TODO: any debug code you want to inspect "data" here, as per your MessageBox.Show
yourGrid.DataSource = data;

注意:如果您BindingSource针对 进行了配置DataGridView,那么您将改为更新BindingSource' 。DataSource


推荐阅读