分类

  • 软件天地

  • C#中DataGrid的数据新增编辑删除操作代码‖
    返回结果为true,则表示该
    行或多行记录,调用DataGrid的
    行被选中
    IsSelected(i)函数,如果函数

      ???ArrayList arrList = new ArrayList();
      ???for(int i=0;i???{???                                

      ????if(dtg_BasicData
    Info.IsSelected(i)==true)
      ????{?                                                                  
      ?????F_WR_Public.VO_
    DevSpec vo_DevSpec_Delete =
    new F_WR_Public.VO_DevSpec();
      ?????//表中第11列保存的是设备类型的主键,但没有显示在表中。          
      ?????vo_DevSpec_Delete.devSpecID
    ;
    = Int64.Parse(DevSpec.Rows[i][10].ToString())

      ?????arrList.Add(vo_DevSpec_Delete);      
      ?????deleteNum++;                                            
      ????}                                                                    
      ???}                                                                      

      ???if (deleteNum !=0)                                    
      ???{                                                                      
      ????if (MessageBox.Show ("你确定
    要删除这些数据吗?", "删除数据",
      ?????MessageBoxButto
    ns.YesNo, MessageBoxIcon.Que
    stion)== DialogResult.Yes)
      ????{                                                                    
      ?????F_WR_Public.F_WR_Public f_W
    R_Public = new F_WR_Public.F_WR_Public();?????
      ?????F_WR_Public.VO_
    blic.VO_DevSpec[deleteNu
    DevSpec[] arrVO_DevSpec_Dele
    m];
    te = new F_WR_Pu


      ?????IEnumerator ien
    um = arrList.GetEnumerator()
    ;
      ?????int deleteIndex=0;                                
      ?????while(ienum.MoveNext())                      
      ?????{                                                                  
      ??????arrVO_DevSpec_
    c)ienum.Current;
    Delete[deleteIndex] = (F_WR_

    Public.VO_DevSpe

      ??????arrVO_DevSpec_Delete[delet
    eIndex].col=Int64.MaxValue;
      ??????arrVO_DevSpec_Delete[delet
    eIndex].devTypeID=Int64.MaxValue;
      ??????arrVO_DevSpec_
    Delete[deleteIndex].num=Int6
    4.MaxValue;
      ??????arrVO_DevSpec_
    Delete[deleteIndex].row=Int6
    4.MaxValue;
      ??????deleteIndex++;                                      
      ?????}                                                                  

      ?????f_WR_Public.removeDevSpec(a
    rrVO_DevSpec_Delete);
      ?????MessageBox.Show
    MessageBoxIcon.Informati
    ("删除成功!", "删除数据",M
    on);
    essageBoxButtons.OK,

      ????}                                                                    
      ????else                                                             
      ????{                                                                   
      ?????return;                                                      
      ????}                                                                    
      ???}                                                                      
      ???else                                                                
      ???{                                                                      
      ????MessageBox.Show
    geBoxButtons.OK, Message
    ("未选中所要删除的数据!", "
    BoxIcon.Warning);
    删除数据", Messa

      ???}                                                                      

      ??}                                                                        

      ?                                                                            

      private void QueryDevSpec()                        
      ??{                                                                        
      ???try                                                                  
      ???{                                                                      
      ????DevSpec.Clear();                                      
      ????F_WR_Public.F_WR_Public f_WR
    _Public = new F_WR_Public.F_WR_Public();

      ????F_WR_Public.VO_D
    evSpec vo_DevSpec = new F_WR
    _Public.VO_DevSpec();
      ????vo_DevSpec.col=Int64.MaxValue;          
      ????vo_DevSpec.devSpecID=Int64.M
    axValue;
      ????vo_DevSpec.devTy
    peID=Int64.Parse(cbo_DevType
    .SelectedValue.ToString());
      ????vo_DevSpec.num=Int64.MaxValue;          
      ????vo_DevSpec.row=Int64.MaxValue;          

      ????F_WR_Public.VO_D
    pec(vo_DevSpec);
    evSpec[] arrVO_DevSpec=f_WR_

    Public.queryDevS


      ????if(arrVO_DevSpec!=null)                        
      ????{                                                                    
      ?????for(int i=0;i?????{                              
      ??????F_WR_Public.VO_DevSpec vo_
    DevSpec_Result = arrVO_DevSpec[i];
      ??????DataRow myRow;                                      
      ??????myRow = DevSpec.NewRow();                
      ??????myRow["设备大
    D].displayMember.ToStrin
    类"] =DIC_DevSpec[vo_DevSpec
    g();
    _Result.devTypeI

      ??????myRow["规格类型"] = vo_Dev
    Spec_Result.specType;
      ??????myRow["生产厂家"] = vo_Dev
    Spec_Result.manufacturer;

      ??????myRow["长"] =
    vo_DevSpec_Result.@long;

      ??????myRow["宽"] =
    vo_DevSpec_Result.width;
      ??????myRow["高"] = vo_DevSpec_R
    esult.high;
      ??????if ( vo_DevSpec_Result.num
    != Int64.MaxValue)
      ??????{                                                                

      ???????myRow["数量"]
    = vo_DevSpec_Result.num;
      ??????}                                                                
      ??????else                                                          
      ???????myRow["数量"] ="";                                
      ??????if ( vo_DevSpe
    c_Result.row != Int64.MaxVal
    ue)
      ??????{                                                                

      ???????myRow["行"] =
    vo_DevSpec_Result.row;
      ??????}                                                                
      ??????else                                                          
      ???????myRow["行"] = "";                                
      ??????if ( vo_DevSpe
    c_Result.col != Int64.MaxVal
    ue)
      ??????{                                                                

      ???????myRow["列"] =
    vo_DevSpec_Result.col;
      ??????}                                                                
      ??????else                                                          
      ???????myRow["列"] = "";;                              
      ??????                                                                  
      ??????myRow["排列方式"] = vo_Dev
    Spec_Result.disposeType;
      ??????myRow["设备型
    号"] = vo_DevSpec_Result.dev
    SpecID;

      ??????DevSpec.Rows.Add(myRow);                 
      ?????}                                                                  
      ?????DevSpec.AcceptChanges();                    
      ?????//设置dtg_Basic
    DataInfo的DataMember为DevSpe
    c
      ?????dtg_BasicDataInfo.DataMembe
    r = DevSpec.ToString();

      ?????dtg_BasicDataIn
    fo.DataSource=dataSet1;
      ?????DevTableStyle.MappingName="
    DevSpec";
      ?????rowCounts=arrVO_DevSpec.Length;      
      ????}                                                                    
      ????else                                                              
      ????{                                                                    
      ?????rowCounts=0;                                            
      ????}                                                                    
      ????dtg_BasicDataInfo.ReadOnly = true;  
      ???}                                                                      
      ???catch(Exception ee)                                  
      ???{                                                                      
      ????                                                                      

      ????MessageBox.Show
    (ee.ToString(), "Error",
      ?????MessageBoxButto
    ns.OK, MessageBoxIcon.Inform
    ation);
      ???}                                                                      
      ??}                                                                        

      ?                                                                            

      ?private void SaveDevData()                        
      ??? {                                                                    
      ???try                                                                  
      ???{                                                                      
      ????F_WR_Public.F_WR_Public f_WR
    _Public = new F_WR_Public.F_WR_Public();

      ????//如果某行的状态为Added,则表示该行的数据是新增加的            
      ????DataRow[] dataRo
    wAdd = DevSpec.Select(null,n
    ull,DataViewRowState.Added);
      ????int mCount= dataRowAdd.Length;          
      ????if (mCount != 0)                                      
      ????{                                                                    
      ?????F_WR_Public.VO_DevSpec[] ar
    WR_Public.VO_DevSpec[mCount];
    rVO_DevSpec_Add = new F_

      ?????for(int i=0;i?????{                              
      ??????F_WR_Public.VO_DevSpec vo_
    DevSpec = new F_WR_Public.VO_DevSpec();

      ??????vo_DevSpec.col=Int64.MaxValue;      
      ??????vo_DevSpec.num=Int64.MaxValue;      
      ??????vo_DevSpec.row=Int64.MaxValue;      

      ??????vo_DevSpec.dev
    TypeID =Int64.Parse(cbo_DevT
    ype.SelectedValue.ToString());
      ??????vo_DevSpec.specType=dataRo
    wAdd[i][1].ToString();
      ??????vo_DevSpec.manufacturer=da
    taRowAdd[i][2].ToString();
      ??????vo_DevSpec.@long=dataRowAd
    d[i][3].ToString();
      ??????vo_DevSpec.width=dataRowAd
    d[i][4].ToString();
      ??????vo_DevSpec.high=dataRowAdd
    [i][5].ToString();
      ??????if(!dataRowAdd
    [i][6].ToString().Equals("")
    )
      ??????{                                                                
      ???????vo_DevSpec.nu
    m= Int64.Parse(dataRowAdd[i]
    [6].ToString());
      ??????}                                                                
      ??????if(!dataRowAdd[i][7].ToStr
    ing().Equals(""))
      ??????{                                                                
      ???????vo_DevSpec.row= Int64.Par
    se(dataRowAdd[i][7].ToString());
      ??????}                                                                
      ??????if(!dataRowAdd[i][8].ToStr
    ing().Equals(""))
      ??????{                                                                
      ???????vo_DevSpec.col= Int64.Par
    se(dataRowAdd[i][8].ToString());
      ??????}                                                                
      ??????vo_DevSpec.dis
    poseType=dataRowAdd[i][9].To
    String();
      ??????vo_DevSpec.devSpecID=Int64
    .MaxValue;
      ????????                                                              
      ????????                                                              
      ??????arrVO_DevSpec_Add[i] = vo_
    DevSpec;
      ?????}                                                                  

      ?????f_WR_Public.add
    DevSpec(arrVO_DevSpec_Add);
      ?????MessageBox.Show ("增加成功
    MessageBoxIcon.Information);
    !", "增加数据",MessageBoxButtons.OK,

      ????}                                                                    

      ????//如果某行的状态
    为ModifiedCurrent,则表示该
    行的数据被修改过
      ????DataRow[] dataRowModify = De
    ataViewRowState.ModifiedCurrent);
    vSpec.Select(null,null,D

      ????int intDataRowModify = dataR
    owModify.Length;
      ????if (intDataRowModify != 0)                  
      ????{                                                                    
      ?????F_WR_Public.VO_
    blic.VO_DevSpec[intDataR
    DevSpec[] arrVO_DevSpec_Modi
    owModify];
    fy = new F_WR_Pu

      ?????for(int i=0;i?????{                              
      ??????F_WR_Public.VO_DevSpec vo_
    DevSpec = new F_WR_Public.VO_DevSpec();
      ??????//表中第11列保存的是设备类型的主键,但没有显示在表中。        
      ??????vo_DevSpec.devSpecID= Int6
    4.Parse(dataRowModify[i][10].ToString());
      ??????//                                                              
      ??????vo_DevSpec.col=Int64.MaxValue;      
      ??????vo_DevSpec.num=Int64.MaxValue;      
      ??????vo_DevSpec.row=Int64.MaxValue;      

      ??????vo_DevSpec.spe
    cType=dataRowModify[i][1].To
    String();
      ??????vo_DevSpec.manufacturer=da
    taRowModify[i][2].ToString();
      ??????vo_DevSpec.@lo
    ng=dataRowModify[i][3].ToStr
    ing();
      ??????vo_DevSpec.width=dataRowMo
    dify[i][4].ToString();
      ??????vo_DevSpec.high=dataRowMod
    ify[i][5].ToString();
      ??????if(!dataRowMod
    ify[i][6].ToString().Equals(
    ""))
      ??????{                                                                
      ???????vo_DevSpec.nu
    m= Int64.Parse(dataRowModify
    [i][6].ToString());
      ??????}                                                                
      ??????if(!dataRowMod
    ify[i][7].ToString().Equals(
    ""))
      ??????{                                                                
      ???????vo_DevSpec.row= Int64.Par
    se(dataRowModify[i][7].ToString());
      ??????}                                                                
      ??????if(!dataRowModify[i][8].To
    String().Equals(""))
      ??????{                                                                
      ???????vo_DevSpec.co
    l= Int64.Parse(dataRowModify
    [i][8].ToString());
      ??????}                                                                
      ??????vo_DevSpec.dis
    poseType=dataRowModify[i][9]
    .ToString();


      ??????arrVO_DevSpec_
    Modify[i] = vo_DevSpec;
      ?????}                                                                  
      ???????                                                                
      ?????f_WR_Public.mod
    ifyDevSpec(arrVO_DevSpec_Mod
    ify);
      ?????MessageBox.Show ("保存成功
    MessageBoxIcon.Information);
    !", "保存数据",MessageBoxButtons.OK,

      ????}                                                                    
      ????DevSpec.AcceptChanges();                      
      ???}                                                                      
      ???catch(Exception ee)                                  
      ???{                                                                      
      ????MessageBox.Show
    MessageBoxIcon.Informati
    (ee.ToString(), "Error",Mess
    on);
    ageBoxButtons.OK,

      ???}                                                                      
      ??? }                                                                    

      ?                                                                            

      ?                                                                            
      private void QueryIfSaveDevData()            
      ??{                                                                        
      ???/*该函数查询Dev表中是否有未保存的数据,如果有,则询问是否保存,    
      ??? * 如果用户回答需
    要保存,则调用SaveDevData过
    程保存数据,如果回答否,
      ??? * 则调用查询过程QueryDevSpec刷新页面*/                
      ???DataRow[] dataRowAdd1 = DevSp
    ec.Select(null,null,DataViewRowState.Added);
      ???int mAddCount1= dataRowAdd1.Length;  
      ???DataRow[] dataRow
    owState.ModifiedCurrent)
    Modify1 = DevSpec.Select(nul
    ;
    l,null,DataViewR


      ???int mModifyCount1
    =dataRowModify1.Length;

      ???if (mAddCount1!=0
    || mModifyCount1 !=0)
      ???{                                                                      
      ????if (MessageBox.Show ("有编辑
    过的数据未保存,需要保存吗?", "提示",
      ?????MessageBoxButtons.YesNo, Me
    ssageBoxIcon.Question)== DialogResult.Yes)
      ?????SaveDevData();                                        
      ????else                                                              
      ?????QueryDevSpec();                                      
      ???}                                                                      
      ??}                                                                        

      ?                                                                            

    上一页 下一页




    map