添加记录后,如何将添加的记录变成当前的记录? 添加记录后,如何将添加的记录变成当前的记录?这样好在窗口上的textbox上填内容,然后保存。textbox已经做好了绑定。但是就是无法使用bingdingmanager.position 将记录移动到新添加的记录位置上。应该怎么做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是用Position或者用dataGrid1.CurrentIndex dataGrid1.Select(dataGrid1.CurrentIndex);//选中状态bingdingmanager.position=dataGrid1.CurrentIndex; 没有使用datagrid,我用bingdingmanager.position=bingdingmanager.count -1 时,这条赋值语句不能成功,虽然 count的值已经在addrow()方法后已经增加了,例如,使用addrow()之前 count值为14,使用addrow()后, count的值就已经变成了15了,当使用 bingdingmanager.position=15 -1时,这条语句不能正确赋值。但也不会报错。就是说无法将记录移动到当前新增加的位置,怎么办呢?改天我把代码贴出来让大家看看。 我把相关代码贴出来,并附带有调试时的相关值,大家帮忙分析一下相关代码如下:private BindingManagerBase Bm;private void form1_Load(object sender, System.EventArgs e){ ...... this.label2.DataBindings.Add("Text",this.ds.Tables[0],"编号"); this.textBox1.DataBindings.Add("Text",this.ds.Tables[0],"名称"); this.comboBox1.DataBindings.Add("Text",this.ds.Tables[0],"种类"); ...... Bm=this.BindingContext[ds.Tables[0]];}private void button1_Click(object sender, System.EventArgs e){ try { int x; x=Bm.Count ; //调试跟踪时 x=10 DataRow dr=this.ds.Tables[0].NewRow(); dr["编号"]="aaaa"; //主键,随便赋个值 ds.Tables[0].Rows.Add(dr); x=Bm.Count ; //调试跟踪时 x=11 Bm.Position=2; Bm.Position= x - 1 ;//赋值没有成功,但不报错,执行完后position 仍然为2 } catch(Exception e1) { MessageBox.Show(e1.Message.ToString()); }}就是说,我无法将指针移动到当前添加的记录上,那么我该如何编辑当前记录呀?另外,即使我移动Bm.Position=Bm.Count-1,也未必就是当前添加的那条记录,那该怎么办呢? 比较笨的办法,考虑你的数据在不断更新,一种就是将当前的记录内容缓冲在你本地DATASET中,或不就在记录体中有一个pID,记住这个pID,然后去读这条记录.有点笨,不要见笑 要想新增在绑定时用Me.BindingContext(dataset1,"table1").AddNew()提交时添加Me.BindingContext(dataset1,"table1").EndCurrentEdit() exing(铱星) ,我是这样做的呀,但是在Me.BindingContext(dataset1,"table1").AddNew()后,输入框textbox的值没变,没有清空啊。使用 position也无法将当前记录移动到新增加的位置。郁闷了很多天了 100分,开源控件OutlookBar控件改不了栏目的背景颜色! 触发器 需要引入哪个命名空间? soa、ooa与外观模式 C#进程和C++进程之间如何通信啊 如何实现表单提交到另外一个页面执行 急求,引用命名空间的问题? 怎么在web上控制dns的记录啊?就是添加2级域名什么的? ORACLE更新数据问题,分不够再加 执行插入记录的SQL语句是否可以返回记录吗? 窗体间传值问题(winform) Asking a question about C#!
或者用dataGrid1.CurrentIndex
bingdingmanager.position=dataGrid1.CurrentIndex;
相关代码如下:
private BindingManagerBase Bm;private void form1_Load(object sender, System.EventArgs e)
{
......
this.label2.DataBindings.Add("Text",this.ds.Tables[0],"编号");
this.textBox1.DataBindings.Add("Text",this.ds.Tables[0],"名称");
this.comboBox1.DataBindings.Add("Text",this.ds.Tables[0],"种类");
......
Bm=this.BindingContext[ds.Tables[0]];
}
private void button1_Click(object sender, System.EventArgs e)
{
try
{
int x;
x=Bm.Count ; //调试跟踪时 x=10
DataRow dr=this.ds.Tables[0].NewRow();
dr["编号"]="aaaa"; //主键,随便赋个值
ds.Tables[0].Rows.Add(dr);
x=Bm.Count ; //调试跟踪时 x=11
Bm.Position=2;
Bm.Position= x - 1 ;//赋值没有成功,但不报错,执行完后position 仍然为2
}
catch(Exception e1)
{
MessageBox.Show(e1.Message.ToString());
}
}就是说,我无法将指针移动到当前添加的记录上,那么我该如何编辑当前记录呀?
另外,即使我移动Bm.Position=Bm.Count-1,也未必就是当前添加的那条记录,那该怎么办呢?
在绑定时
用Me.BindingContext(dataset1,"table1").AddNew()
提交时
添加Me.BindingContext(dataset1,"table1").EndCurrentEdit()