分类
C#中DataGrid的数据新增编辑删除操作代码‖
返回结果为true,则表示该
行被选中
| ???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(); |
| ???} |
| ??} |
| ? |