我要实现在bindingsource上保存与另存.
请参看基础代码: private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
this.bindingSource.AddNew();
}
/// <summary>
/// Save
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton1_Click(object sender, EventArgs e)
{
this.bindingSource.EndEdit();
this.bindingSource.ResetBindings(false);
}
/// <summary>
/// save as
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton2_Click(object sender, EventArgs e)
{
DataRow dr = this.ds.Tables["Test"].NewRow();
dr.BeginEdit();
dr["Content"] = this.textBox1.Text.Trim();
dr["Re"] = this.textBox2.Text.Trim();
dr.EndEdit();
this.ds.Tables["Test"].Rows.Add(dr);
this.bindingSource.ResetBindings(false);
}
这里就是另存的...但是这样写不能保证,光标会跟着到另存的那条记录上去,如果用this.bindingsource.movelast到最后一条也不对,因为有的时候有排序
请参看基础代码: private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
this.bindingSource.AddNew();
}
/// <summary>
/// Save
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton1_Click(object sender, EventArgs e)
{
this.bindingSource.EndEdit();
this.bindingSource.ResetBindings(false);
}
/// <summary>
/// save as
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton2_Click(object sender, EventArgs e)
{
DataRow dr = this.ds.Tables["Test"].NewRow();
dr.BeginEdit();
dr["Content"] = this.textBox1.Text.Trim();
dr["Re"] = this.textBox2.Text.Trim();
dr.EndEdit();
this.ds.Tables["Test"].Rows.Add(dr);
this.bindingSource.ResetBindings(false);
}
这里就是另存的...但是这样写不能保证,光标会跟着到另存的那条记录上去,如果用this.bindingsource.movelast到最后一条也不对,因为有的时候有排序
我的数据表只有一个自动增长的主键.我此时只是把datarow加到了dataset中,还未提交更新到数据库,无法得到唯一的主键,所以用find是不现实的啊.
(this.bindingSource.AddNew()时会触发)this.bindingSource.AddingNew += new AddingNewEventHandler(bindingSource_AddingNew);private void bindingSource_AddingNew(object sender, AddingNewEventArgs e)
{
BindingSource bs = (BindingSource)sender;
DataView dv = (DataView)bs.List;
DataRowView drv = dv.AddNew(); dr["Content"] = this.textBox1.Text.Trim();
dr["Re"] = this.textBox2.Text.Trim(); e.NewObject = drv;}
dr["Re"] = this.textBox2.Text.Trim();应该是drv["Content"] = this.textBox1.Text.Trim();
drv["Re"] = this.textBox2.Text.Trim();