Dapper查询结果到datagridview
Dapper query result to 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}")));
}
创建一个数据表然后datagridview1.DataSource = dt;
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; }
public DataTable MakeTable(List<EmployeeModel> model)
{
DataTable dt = new DataTable();
dt.Columns.Add("Employee Id", typeof(int));
dt.Columns.Add("First Name", typeof(string));
dt.Columns.Add("Middle Name", typeof(string));
dt.Columns.Add("Last Name", typeof(string));
dt.Columns.Add("Division Id", typeof(int));
dt.Columns.Add("Division Name", typeof(string));
foreach(EmployeeModel employee in model)
{
dt.Rows.Add(new object[] { employee.id, employee.FirstName, employee.MiddleName, employee.LastName, employee.Division.id, employee.Division.DivisionName });
}
return dt;
}
}
通常,只需将列表指定为数据源就足够了,即
var data = result.ToList();
// TODO: any debug code you want to inspect "data" here, as per your MessageBox.Show
yourGrid.DataSource = data;
注意:如果您针对 DataGridView
配置了 BindingSource
,那么您需要更新 BindingSource
的 DataSource
。
我已经映射了我的模型并在下面提出了以下代码。如何使用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}")));
}
创建一个数据表然后datagridview1.DataSource = dt;
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; }
public DataTable MakeTable(List<EmployeeModel> model)
{
DataTable dt = new DataTable();
dt.Columns.Add("Employee Id", typeof(int));
dt.Columns.Add("First Name", typeof(string));
dt.Columns.Add("Middle Name", typeof(string));
dt.Columns.Add("Last Name", typeof(string));
dt.Columns.Add("Division Id", typeof(int));
dt.Columns.Add("Division Name", typeof(string));
foreach(EmployeeModel employee in model)
{
dt.Rows.Add(new object[] { employee.id, employee.FirstName, employee.MiddleName, employee.LastName, employee.Division.id, employee.Division.DivisionName });
}
return dt;
}
}
通常,只需将列表指定为数据源就足够了,即
var data = result.ToList();
// TODO: any debug code you want to inspect "data" here, as per your MessageBox.Show
yourGrid.DataSource = data;
注意:如果您针对 DataGridView
配置了 BindingSource
,那么您需要更新 BindingSource
的 DataSource
。