C# 将数据行传递给窗体并将控件绑定到该窗体
经过数小时的互联网搜索,这个问题还没有得到明确的答案,所以我想我会重新对它进行分析。我需要将数据行传递给表单,然后将该表单中的控件绑定到数据行中的值。Datarow是由类方法创建的:C# 将数据行传递给窗体并将控件绑定到该窗体,c#,data-binding,crud,datarow,C#,Data Binding,Crud,Datarow,经过数小时的互联网搜索,这个问题还没有得到明确的答案,所以我想我会重新对它进行分析。我需要将数据行传递给表单,然后将该表单中的控件绑定到数据行中的值。Datarow是由类方法创建的: DataRow newRow = cusData.PrimeRecord(); newRow["recordid"] = cusData.GetRecordID(); newRow["recdate"] = DateTime.Now; newRow["lastmod"] = DateTime.Now; CusUpd
DataRow newRow = cusData.PrimeRecord();
newRow["recordid"] = cusData.GetRecordID();
newRow["recdate"] = DateTime.Now;
newRow["lastmod"] = DateTime.Now;
CusUpdate updateFrm = new CusUpdate(newRow);
其中PrimeRecord()方法由以下代码定义:
public DataRow PrimeRecord(){
DataTable dt = new DataTable();
MySqlCommand cmd = new MySqlCommand("SELECT * FROM "+tableName+" LIMIT 1",sqlConnect);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.FillSchema(dt,SchemaType.Mapped);
DataRow dr = dt.NewRow();
return dr;
}
我的所有数据库CRUD代码都已定义,我不想绑定到DataAdapters等。我只想将DataRow传递给表单,更新数据,然后将其传递给适当的CRUD方法。我会接受任何建议。谢谢 您可以使用Windows窗体的数据绑定功能。不幸的是,您不能直接使用
DataRow
对象(请参阅Binding
类中本节的备注部分)。改为在表单内部使用表/视图:
DataView dv = row.Table.DefaultView;
dv.RowFilter = "recordid=" + row["recordid"].ToString();
dtpRecDate.DataBindings.Add("Value", dv, "recdate");
dtpLastMod.DataBindings.Add("Value", dv, "lastmod");
其中
row
是传递给表单构造函数的DataRow
对象,dtpRecDate
和dtpLastMod
是控件。Dan,这正是我所需要的。谢谢你的帮助!