这个问题我今天刚好遇到。修改一下编辑列的DataPropertyName 属性,设置成与数据库中的列名相同即可,就是“email”,不区分大小写。
SqlDataAdapter adapter = new SqlDataAdapter(cmdCommandText, conn);
DataSet ds = new DataSet();
adapterFill(ds);
//绑定数据源
dgvStuListDataSource = dsTables[0];
DataPropertyName 属性的详细资料:
msdnmicrosoftcom/zh-cn/library/systemwindowsformsdatagridviewcolumndatapropertyname(VS90)aspx
首先不建议绑定数据库,这样你的Datagridview的重用性也更高,还有Datagridview不可能与数据库同步更新,目前数据库不支持事件,所以即便你数据库做了更改,Datagridview里的数据也不会实时刷新,或者你写个定时器,周期性刷新,也差不多,但绝对不会自动同步!!
你可以定义一个类,这个类里面就是你的字段内容,然后用Group来分组遍历,组成新的数据源就可以了。类似的伪代码。
public class CStudent
{
/// <summary>
/// 班别
/// </summary>
public virtual String ClassType { get; set; }
/// <summary>
/// 人数
/// </summary>
public virtual Int32 Count { get; set; }
/// <summary>
/// 合并项
/// </summary>
public virtual String Merge { get; set; }
}
我只定义了三项,还有一些字段类似这种方法。然后你把读出来的数据填充到List<CStudent>中。
List<CStudent> lst = new List<CStudent>();
//这里就填充数据,如果是从数据库里察出来的DataTable就做个转换
foreach (var obj in lstGroupBy(a => aMerge))
{
var count = objSum(a => aCount); //人数相加
var ctype = StringJoin("、", objSelect(a => aClassType)Distinct()ToArray());
//这里把合并计算后的值生成新的数据源, DataTable都行。
}
如果你不想用List泛型,就用DataTable也可以。
以上就是关于DataGridView控件在winform模式中如何使数据库中的字段绑定到列上全部的内容,包括:DataGridView控件在winform模式中如何使数据库中的字段绑定到列上、C#winform编程中,当使用Datagridview与数据库绑定的时候,如何让Datagridview与数据库同步更新、处理c#winform中数据库绑定在dataGridview里的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)