| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6935 人关注过本帖, 1 人收藏
标题:[求助]关于使用BindingSource的AddNew()方法来新增记录
取消只看楼主 加入收藏
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏(1)
 问题点数:0 回复次数:3 
[求助]关于使用BindingSource的AddNew()方法来新增记录

我使用BindingSource的AddNew()方法来新增记录,结果出错.代码如下:
// 工具栏中"保存"按钮的Click Event
private void tsbSave_Click(object sender, EventArgs e)
{
if (this.currentState == interfaceState.AddState)
{
this.bsEmployees.AddNew();
}
this.bsEmployees.EndEdit();
this.sdaEmployees.Update(this.dsHrm.Tables["Employees"]);
this.currentState = interfaceState.BrowseState;
this.controlsState(this.currentState);
}


// 用户在BindingSource上调用AddNew时引发的事件
private void bsEmployees_AddingNew(object sender, AddingNewEventArgs e)
{
Hashtable newRow = new Hashtable();
newRow["E_ID"] = this.tbE_ID.Text.Trim();
newRow["E_Name"] = this.tbE_Name.Text.Trim();
newRow["E_Code"] = this.tbE_Code.Text.Trim();
newRow["E_Gender"] = this.cbE_Gender.SelectedIndex.ToString();
newRow["E_Birthday"] = this.dtpE_Birthday.Value.ToShortDateString();
newRow["E_UID"] = this.tbE_UID.Text.Trim();
newRow["E_FSchool"] = this.tbE_FSchool.Text.Trim();
newRow["E_Speciality"] = this.tbE_Speciality.Text.Trim();
newRow["E_Address"] = this.tbE_Address.Text.Trim();
newRow["E_Guardian"] = this.tbE_Guardian.Text.Trim();
newRow["E_LinkTel"] = this.tbE_LinkTel.Text.Trim();
newRow["E_InFactory"] = this.dtpE_InFactory.Value.ToShortDateString();
e.NewObject = newRow;
}

错误信息:

图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: AddNew 记录 
2006-12-25 23:43
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 

关于AddNew()的问题已解决,是AddingNew事件中的的代码有错误,便现在更新后仍有一个问题.无法更新到源数据表中.

代码如下:
// 工具栏中"添加"按钮的Click Event
private void tsbAdd_Click(object sender, EventArgs e)
{
this.currentState = interfaceState.AddState;
this.clearBindingPage(); // 调用自定义方法,清除TabPage页面中各控件与数据的绑定
this.initialTabPage(); // 调用自定义方法,用除初始化TabPage页面中各控件的数据
this.controlsState(this.currentState);
}

// 工具栏中"编辑"按钮的Click Event
private void tsbEdit_Click(object sender, EventArgs e)
{
this.currentState = interfaceState.EditState;
this.controlsState(this.currentState);
}

// 工具栏中"删除"按钮的Click Event
private void tsbDelete_Click(object sender, EventArgs e)
{

}

// 工具栏中"保存"按钮的Click Event
private void tsbSave_Click(object sender, EventArgs e)
{
if (this.currentState == interfaceState.AddState)
{
this.bsEmployees.AddNew();
}
this.bsEmployees.EndEdit();
this.currentState = interfaceState.BrowseState;
this.controlsState(this.currentState);
this.bindingPage(); // 调用自定义方法,用于恢复tabPage上各控件与数据的绑定
}

// 用户在BindingSource上调用AddNew时引发的事件
private void bsEmployees_AddingNew(object sender, AddingNewEventArgs e)
{
BindingSource bs = (BindingSource)sender;
DataView view = (DataView)bs.List;
DataRowView newRow = view.AddNew();
newRow["E_ID"] = this.tbE_ID.Text.Trim();
newRow["E_Name"] = this.tbE_Name.Text.Trim();
newRow["E_Code"] = this.tbE_Code.Text.Trim();
newRow["E_Gender"] = this.cbE_Gender.SelectedIndex.ToString();
newRow["E_Birthday"] = this.dtpE_Birthday.Value.ToShortDateString();
newRow["E_UID"] = this.tbE_UID.Text.Trim();
newRow["E_FSchool"] = this.tbE_FSchool.Text.Trim();
newRow["E_Speciality"] = this.tbE_Speciality.Text.Trim();
newRow["E_Address"] = this.tbE_Address.Text.Trim();
newRow["E_Guardian"] = this.tbE_Guardian.Text.Trim();
newRow["E_LinkTel"] = this.tbE_LinkTel.Text.Trim();
newRow["E_InFactory"] = this.dtpE_InFactory.Value.ToShortDateString();
e.NewObject = newRow;
}


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2006-12-26 23:20
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 

TO:5楼.

但是如果我使用"编辑"后再保存,修改后的数据能保存到原数据表中..


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2006-12-27 12:50
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 

问题找了出来了,是因为我的"性别"栏中,在SqlDataAdapter控件中的Select 语句中用到case 性别 = 1 then '男' else '女' end..但我现在要更新的话,该怎么做?


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2006-12-28 22:52
快速回复:[求助]关于使用BindingSource的AddNew()方法来新增记录
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027900 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved