2013-03-23 50 views
3

很多小时的互联网搜索没有在这个问题上发现明确的答案,所以我想我会重新编写它。我需要将数据行传递给表单,然后将该表单中的控件绑定到数据行中的值。该数据行是由一个类的方法创建:将数据表传递给表单并将控件绑定到它

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方法。我会采取任何建议。谢谢!

回答

3

您可以使用Windows Forms的数据绑定功能。不幸的是,您不能直接使用DataRow对象(请参见Binding类的ctor的备注部分)。使用表/视图代替,所述表单内:

DataView dv = row.Table.DefaultView; 
dv.RowFilter = "recordid=" + row["recordid"].ToString(); 
dtpRecDate.DataBindings.Add("Value", dv, "recdate"); 
dtpLastMod.DataBindings.Add("Value", dv, "lastmod"); 

其中row是传递给形式构造和dtpRecDatedtpLastModDateTimePicker控制DataRow对象。

+0

丹,那完全是我所需要的。感谢你的帮助! – user1532602 2013-03-23 15:01:26

相关问题