【发布时间】:2019-08-01 10:11:27
【问题描述】:
我有一个存储库,其中包含一种从数据库中获取整个列表的方法和如下的表单加载方法。我必须在单击按钮的最后一行下添加一个空行,以便我可以编辑单元格并保存到数据库中(我有另一种方法)。
存储库:
//display_tbl is storedproc
public List<ABC> FetchActiveABC() //Method for fetching the whole list into datagridview
{
var listABC = new List<ABC>();
try
{
using (var cmd = _db.GetStoredProcCommand("display_tbl"))
{
using (var a = new SafeDataReader(_db.ExecuteReader(cmd)))
{
while (a.Read())
{
listABC.Add(Loadabc(a));
}
}
}
}
catch { /* ... */}
return listABC;
}
表格:
private List<ABC> lstABC = null;
private void Form1_Load(object sender, EventArgs e)
{
lstABC = new ABCRepository().FetchActiveABC();
DataGridView.DataSource = lstABC;
}
这会将整个列表显示到datagridview。
【问题讨论】:
-
你已经尝试了什么?
-
使用
BindingSource或BindingList<ABC>作为DataGridView的数据源。然后轻松调用绑定源或绑定列表的AddNew方法。只要确保ABC有无参数构造函数。 -
@RezaAghaei 谢谢,是的,这适用于添加空行,但是如果我们想添加具有某些值的行怎么办?如果我们想给出一些参数?
-
还有一个接受对象实例的
Add方法。 -
是的,使用它不会添加任何新行,它会替换当前行。我需要在 dgv 中存在的任何行下方添加一个新行。