从数据窗体向导的窗体学窗体数据操作

DataFormGuild.gif

上面是用VS.NET的"数据窗体向导"自动生成的窗体.但是,我们从其中生成的代码里可以学到很多东西.
下面,我们会一个个按钮的代码进行讲解:

btnLoad(加载):
None.gif          private   void  btnLoad_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 尝试加载数据集。
InBlock.gif
                this.LoadDataSet();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch (System.Exception eLoad) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 在此处添加错误处理代码。
InBlock.gif                
// 显示错误信息(如果有)。
InBlock.gif
                System.Windows.Forms.MessageBox.Show(eLoad.Message);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
public   void  LoadDataSet()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
// 创建一个新数据集以保存从 FillDataSet 调用返回的记录。
InBlock.gif            
// 使用了一个临时数据集,这是因为填充现有的数据集
InBlock.gif            
// 需要重新绑定数据绑定。
InBlock.gif
            Car.jobDataSet objDataSetTemp;
InBlock.gif            objDataSetTemp 
= new Car.jobDataSet();
InBlock.gif            
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 尝试填充临时数据集。
InBlock.gif
                this.FillDataSet(objDataSetTemp);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch (System.Exception eFillDataSet) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 在此处添加错误处理代码。
InBlock.gif
                throw eFillDataSet;
ExpandedSubBlockEnd.gif            }

InBlock.gif            
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 清空数据集中的旧记录。
InBlock.gif
                objjobDataSet.Clear();
InBlock.gif                
// 将记录合并到主数据集中。
InBlock.gif
                objjobDataSet.Merge(objDataSetTemp);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch (System.Exception eLoadMerge) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 在此处添加错误处理代码。
InBlock.gif
                throw eLoadMerge;
ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
public   void  FillDataSet(Car.jobDataSet dataSet)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
// 在填充数据集前关闭约束检查。
InBlock.gif            
// 这允许适配器填充数据集而不用考虑
InBlock.gif            
// 表之间的依赖项。
InBlock.gif
            dataSet.EnforceConstraints = false;
InBlock.gif            
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 打开连接。
InBlock.gif
                this.oleDbConnection1.Open();
InBlock.gif                
// 尝试通过 OleDbDataAdapter1 填充数据集。
InBlock.gif
                this.oleDbDataAdapter1.Fill(dataSet);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch (System.Exception fillException) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 在此处添加错误处理代码。
InBlock.gif
                throw fillException;
ExpandedSubBlockEnd.gif            }

InBlock.gif            
finally 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 重新打开约束检查。
InBlock.gif
                dataSet.EnforceConstraints = true;
InBlock.gif                
// 无论是否引发了异常都关闭连接。
InBlock.gif
                this.oleDbConnection1.Close();
ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif        }


btnUpdate(更新):
None.gif          private   void  btnUpdate_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 尝试更新数据源。
InBlock.gif
                this.UpdateDataSet();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch (System.Exception eUpdate) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 在此处添加错误处理代码。
InBlock.gif                
// 显示错误信息(如果有)。
InBlock.gif
                System.Windows.Forms.MessageBox.Show(eUpdate.Message);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
public   void  UpdateDataSet()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
// 创建一个新数据集来保存对主数据集所做的更改。
InBlock.gif
            Car.jobDataSet objDataSetChanges = new Car.jobDataSet();
InBlock.gif            
// 停止当前的任何编辑。
InBlock.gif
            this.BindingContext[objjobDataSet,"tblJobDetails"].EndCurrentEdit();
InBlock.gif            
// 获取对主数据集所做的更改。
InBlock.gif
            objDataSetChanges = ((Car.jobDataSet)(objjobDataSet.GetChanges()));
InBlock.gif            
// 检查是否做了任何更改。
InBlock.gif
            if ((objDataSetChanges != null)) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
// 需要做一些更改,所以尝试通过调用 update 方法
InBlock.gif                    
// 和传递数据集以及任何参数来更新数据源。
InBlock.gif
                    this.UpdateDataSource(objDataSetChanges);
InBlock.gif                    objjobDataSet.Merge(objDataSetChanges);
InBlock.gif                    objjobDataSet.AcceptChanges();
ExpandedSubBlockEnd.gif                }

InBlock.gif                
catch (System.Exception eUpdate) 
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
// 在此处添加错误处理代码。
InBlock.gif
                    throw eUpdate;
ExpandedSubBlockEnd.gif                }

InBlock.gif                
// 添加代码以检查返回的数据集中是否有任何可能已被
InBlock.gif                
// 推入到行对象错误中的错误。
ExpandedSubBlockEnd.gif
            }

InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
public   void  UpdateDataSource(Car.jobDataSet ChangedRows)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 在有挂起的更改时,只需要更新数据源即可。
InBlock.gif
                if ((ChangedRows != null)) 
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
// 打开连接。
InBlock.gif
                    this.oleDbConnection1.Open();
InBlock.gif                    
// 尝试更新数据源。
InBlock.gif
                    oleDbDataAdapter1.Update(ChangedRows);
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch (System.Exception updateException) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 在此处添加错误处理代码。
InBlock.gif
                throw updateException;
ExpandedSubBlockEnd.gif            }

InBlock.gif            
finally 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 无论是否引发了异常都关闭连接。
InBlock.gif
                this.oleDbConnection1.Close();
ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif        }


btnCancelAll:(全部取消)
None.gif          private   void  btnCancelAll_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.objjobDataSet.RejectChanges();
InBlock.gif
ExpandedBlockEnd.gif        }


btnAdd(添加记录):
None.gif          private   void  btnAdd_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
try 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
// 清除当前编辑内容
InBlock.gif
                this.BindingContext[objjobDataSet,"tblJobDetails"].EndCurrentEdit();
InBlock.gif                
this.BindingContext[objjobDataSet,"tblJobDetails"].AddNew();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch (System.Exception eEndEdit) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                System.Windows.Forms.MessageBox.Show(eEndEdit.Message);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }


btnDelete(删除记录):
None.gif          private   void  btnDelete_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
if ((this.BindingContext[objjobDataSet,"tblJobDetails"].Count > 0)) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
this.BindingContext[objjobDataSet,"tblJobDetails"].RemoveAt(this.BindingContext[objjobDataSet,"tblJobDetails"].Position);
InBlock.gif                
this.objjobDataSet_PositionChanged();
ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif        }


btnCancel(取消):
None.gif          private   void  btnCancel_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.BindingContext[objjobDataSet,"tblJobDetails"].CancelCurrentEdit();
InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }


几个移动记录按钮集合:
None.gif          private   void  btnNavFirst_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.BindingContext[objjobDataSet,"tblJobDetails"].Position = 0;
InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
private   void  btnNavPrev_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.BindingContext[objjobDataSet,"tblJobDetails"].Position = (this.BindingContext[objjobDataSet,"tblJobDetails"].Position - 1);
InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
private   void  btnNavNext_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.BindingContext[objjobDataSet,"tblJobDetails"].Position = (this.BindingContext[objjobDataSet,"tblJobDetails"].Position + 1);
InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
private   void  btnLast_Click( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.BindingContext[objjobDataSet,"tblJobDetails"].Position = (this.objjobDataSet.Tables["tblJobDetails"].Rows.Count - 1);
InBlock.gif            
this.objjobDataSet_PositionChanged();
InBlock.gif
ExpandedBlockEnd.gif        }


objjobDataSet_PositionChanged方法只是显示页数的视觉操作:
None.gif          private   void  objjobDataSet_PositionChanged()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.lblNavLocation.Text = ((((this.BindingContext[objjobDataSet,"tblJobDetails"].Position + 1)).ToString() + " 的 "
InBlock.gif                
+ this.BindingContext[objjobDataSet,"tblJobDetails"].Count.ToString());
InBlock.gif
ExpandedBlockEnd.gif        }

转载于:https://www.cnblogs.com/wddavid/archive/2005/08/11/212915.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值