我有一个问题,我试图通过Combobox DisplayMember而不是ValueMember对Datagridview进行排序。
Datagridview是数据表的数据绑定,它是从SQL查询填充的,而Combobox是由LinqQuery的结果填充的。
填充数据网格和排序的表单的代码隐藏
internal static void PopulateDataGrid(Dictionary<string, string> dataGrid, DataGridView dgv, DataTable dt)
{
dgv.AutoGenerateColumns = false;
foreach (KeyValuePair<string, string> row in dataGrid)
{
dgv.Columns[row.Key].DataPropertyName = row.Value;
}
dgv.DataSource = dt;
}
Systems.PopulateDatagrid
internal static DataTable FillDataTable(string strSQL, CommandType CT, List<SqlParameter> parameters)
{
var ds = new DataSet("UMDS");
DataTable dt = ds.Tables.Add("UMDT");
ds.EnforceConstraints = false;
using (var cn = new SqlConnection(SQLHelper.ConnectionString))
{
using (var cmd = new SqlCommand(strSQL, cn))
{
cmd.CommandType = CT;
if (parameters != null)
{
DateTime dateTime;
foreach (SqlParameter p in parameters)
{
if (p.Value == null || string.IsNullOrEmpty(p.Value.ToString()) || p.Value.ToString() == Systems.MASKEDDATE || p.Value.ToString() == Systems.MASKEDTIME)
{
p.Value = DBNull.Value;
}
else if (DateTime.TryParse(p.Value.ToString(), out dateTime))
{
p.Value = dateTime;
}
cmd.Parameters.Add(p);
}
}
try
{
cn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
dt.Load(dr);
}
}
catch (SqlException ex)
{
Systems.Msg("Database Error", "Error Loading Data from Database. Please try again.\n\n" + ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
return dt;
}
SQLHelper.FillDatatable
{{1}}
单击标题为&#34; AgentID&#34;它按ValueMember而不是DisplayMember进行排序。
答案 0 :(得分:0)