主从表修改单头
厦门德仔 博客专家认证 2010-11-18 02:40:34 在测试主从表时候 突然发现修改单头时候,居然不会更新。
仔细分析了一下:
我是把单头的文本框BIND 到数据源(自定义了一个GetDtDD)
BLL.PO po = null;
private void frm_user_Load(object sender, EventArgs e)
{
po = new BLL.PO();
this.textBox1.DataBindings.Add("Text", this.po.GetDtDD, "DocType", true, DataSourceUpdateMode.OnPropertyChanged);
this.textBox2.DataBindings.Add("Text", this.po.GetDtDD, "DocNumber", true, DataSourceUpdateMode.OnPropertyChanged);
this.textBox3.DataBindings.Add("Text", this.po.GetDtDD, "Vendor", true, DataSourceUpdateMode.OnPropertyChanged);
。。。。。。
}
DT :
//单头
col = new DataColumn();
col.DataType = Type.GetType("System.Int32");
col.ColumnName = "ID";
dtDD.Columns.Add(col);
col = new DataColumn();
col.DataType = Type.GetType("System.String");
col.ColumnName = "DocType";
dtDD.Columns.Add(col);
col = new DataColumn();
col.DataType = Type.GetType("System.String");
col.ColumnName = "DocNumber";
dtDD.Columns.Add(col);
col = new DataColumn();
col.DataType = Type.GetType("System.String");
col.ColumnName = "Vendor";
dtDD.Columns.Add(col);
--------------------
}
else if (drDD.RowState == DataRowState.Modified) ----这句不会触发 断点提示drDD.RowState 为UNCHAGE
{
spName = "sp_cgd_update";
sqlParameters = new SqlParameter[]{
new SqlParameter("@doctype",SqlDbType.Char,2),
new SqlParameter("@docnumber",SqlDbType.Char,10),
new SqlParameter("@vendor",SqlDbType.Char,4)
};
sqlParameters[0].Value = drDD["doctype"].ToString().Trim ();
sqlParameters[1].Value = drDD["docnumber"].ToString().Trim() ;
sqlParameters[2].Value = drDD["vendor", DataRowVersion.Current].ToString().Trim(); // drDD["vendor"].ToString().Trim() ;
}
bool saveReault = false;
那就问题出在控件和数据源BIND。如果是,那应该如何BIND呢?
其中单身我是BIND到一个datagridview能够同步。
各位大虾有何解决办法?。。。急