您现在的位置: 中国IT实验室 >> 软件水平考试 >> 特别推荐 >> 文章正文
C#中DataGrid的数据新增编辑删除操作代码

CSDN 技术论坛  2004-8-11  保存本文  推荐给好友  QQ上看本站  收藏本站



  private void DeleteDevData()
  ??{
  ???int deleteNum=0;
  ???//删除选中的某一行或多行记录,调用DataGrid的IsSelected(i)函数,如果函数返回结果为true,则表示该行被选中
  ???ArrayList arrList = new ArrayList();
  ???for(int i=0;i???{???
  ????if(dtg_BasicDataInfo.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 ("你确定要删除这些数据吗?", "删除数据",
  ?????MessageBoxButtons.YesNo, MessageBoxIcon.Question)== DialogResult.Yes)
  ????{
  ?????F_WR_Public.F_WR_Public f_WR_Public = new F_WR_Public.F_WR_Public();?????
  ?????F_WR_Public.VO_DevSpec[] arrVO_DevSpec_Delete = new F_WR_Public.VO_DevSpec[deleteNum];
  
  ?????IEnumerator ienum = arrList.GetEnumerator();
  ?????int deleteIndex=0;
  ?????while(ienum.MoveNext())
  ?????{
  ??????arrVO_DevSpec_Delete[deleteIndex] = (F_WR_Public.VO_DevSpec)ienum.Current;
  ??????arrVO_DevSpec_Delete[deleteIndex].col=Int64.MaxValue;
  ??????arrVO_DevSpec_Delete[deleteIndex].devTypeID=Int64.MaxValue;
  ??????arrVO_DevSpec_Delete[deleteIndex].num=Int64.MaxValue;
  ??????arrVO_DevSpec_Delete[deleteIndex].row=Int64.MaxValue;
  ??????deleteIndex++;
  ?????}
  
  ?????f_WR_Public.removeDevSpec(arrVO_DevSpec_Delete);
  ?????MessageBox.Show ("删除成功!", "删除数据",MessageBoxButtons.OK, MessageBoxIcon.Information);
  ????}
  ????else
  ????{
  ?????return;
  ????}
  ???}
  ???else
  ???{
  ????MessageBox.Show ("未选中所要删除的数据!", "删除数据", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  ???}
  
  ??}
  
  ?
  
  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_DevSpec vo_DevSpec = new F_WR_Public.VO_DevSpec();
  ????vo_DevSpec.col=Int64.MaxValue;
  ????vo_DevSpec.devSpecID=Int64.MaxValue;
  ????vo_DevSpec.devTypeID=Int64.Parse(cbo_DevType.SelectedValue.ToString());
  ????vo_DevSpec.num=Int64.MaxValue;
  ????vo_DevSpec.row=Int64.MaxValue;
  
  ????F_WR_Public.VO_DevSpec[] arrVO_DevSpec=f_WR_Public.queryDevSpec(vo_DevSpec);
  
  ????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["设备大类"] =DIC_DevSpec[vo_DevSpec_Result.devTypeID].displayMember.ToString();
  ??????myRow["规格类型"] = vo_DevSpec_Result.specType;
  ??????myRow["生产厂家"] = vo_DevSpec_Result.manufacturer;
  ??????myRow["长"] = vo_DevSpec_Result.@long;
  ??????myRow["宽"] = vo_DevSpec_Result.width;
  ??????myRow["高"] = vo_DevSpec_Result.high;
  ??????if ( vo_DevSpec_Result.num != Int64.MaxValue)
  ??????{
  ???????myRow["数量"] = vo_DevSpec_Result.num;
  ??????}
  ??????else
  ???????myRow["数量"] ="";
  ??????if ( vo_DevSpec_Result.row != Int64.MaxValue)
  ??????{
  ???????myRow["行"] = vo_DevSpec_Result.row;
  ??????}
  ??????else
  ???????myRow["行"] = "";
  ??????if ( vo_DevSpec_Result.col != Int64.MaxValue)
  ??????{
  ???????myRow["列"] = vo_DevSpec_Result.col;
  ??????}
  ??????else
  ???????myRow["列"] = "";;
  ??????
  ??????myRow["排列方式"] = vo_DevSpec_Result.disposeType;
  ??????myRow["设备型号"] = vo_DevSpec_Result.devSpecID;
  
  ??????DevSpec.Rows.Add(myRow);
  ?????}
  ?????DevSpec.AcceptChanges();
  ?????//设置dtg_BasicDataInfo的DataMember为DevSpec
  ?????dtg_BasicDataInfo.DataMember = DevSpec.ToString();
  ?????dtg_BasicDataInfo.DataSource=dataSet1;
  ?????DevTableStyle.MappingName="DevSpec";
  ?????rowCounts=arrVO_DevSpec.Length;
  ????}
  ????else
  ????{
  ?????rowCounts=0;
  ????}
  ????dtg_BasicDataInfo.ReadOnly = true;
  ???}
  ???catch(Exception ee)
  ???{
  ????
  ????MessageBox.Show (ee.ToString(), "Error",
  ?????MessageBoxButtons.OK, MessageBoxIcon.Information);
  ???}
  ??}
  
  ?
  
  ?private void SaveDevData()
  ??? {
  ???try
  ???{
  ????F_WR_Public.F_WR_Public f_WR_Public = new F_WR_Public.F_WR_Public();
  
  ????//如果某行的状态为Added,则表示该行的数据是新增加的
  ????DataRow[] dataRowAdd = DevSpec.Select(null,null,DataViewRowState.Added);
  ????int mCount= dataRowAdd.Length;
  ????if (mCount != 0)
  ????{
  ?????F_WR_Public.VO_DevSpec[] arrVO_DevSpec_Add = new F_WR_Public.VO_DevSpec[mCount];
  ?????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.devTypeID =Int64.Parse(cbo_DevType.SelectedValue.ToString());
  ??????vo_DevSpec.specType=dataRowAdd[i][1].ToString();
  ??????vo_DevSpec.manufacturer=dataRowAdd[i][2].ToString();
  ??????vo_DevSpec.@long=dataRowAdd[i][3].ToString();
  ??????vo_DevSpec.width=dataRowAdd[i][4].ToString();
  ??????vo_DevSpec.high=dataRowAdd[i][5].ToString();
  ??????if(!dataRowAdd[i][6].ToString().Equals(""))
  ??????{
  ???????vo_DevSpec.num= Int64.Parse(dataRowAdd[i][6].ToString());
  ??????}
  ??????if(!dataRowAdd[i][7].ToString().Equals(""))
  ??????{
  ???????vo_DevSpec.row= Int64.Parse(dataRowAdd[i][7].ToString());
  ??????}
  ??????if(!dataRowAdd[i][8].ToString().Equals(""))
  ??????{
  ???????vo_DevSpec.col= Int64.Parse(dataRowAdd[i][8].ToString());
  ??????}
  ??????vo_DevSpec.disposeType=dataRowAdd[i][9].ToString();
  ??????vo_DevSpec.devSpecID=Int64.MaxValue;
  ????????
  ????????
  ??????arrVO_DevSpec_Add[i] = vo_DevSpec;
  ?????}
  ?????f_WR_Public.addDevSpec(arrVO_DevSpec_Add);
  ?????MessageBox.Show ("增加成功!", "增加数据",MessageBoxButtons.OK, MessageBoxIcon.Information);
  ????}
  
  ????//如果某行的状态为ModifiedCurrent,则表示该行的数据被修改过
  ????DataRow[] dataRowModify = DevSpec.Select(null,null,DataViewRowState.ModifiedCurrent);
  ????int intDataRowModify = dataRowModify.Length;
  ????if (intDataRowModify != 0)
  ????{
  ?????F_WR_Public.VO_DevSpec[] arrVO_DevSpec_Modify = new F_WR_Public.VO_DevSpec[intDataRowModify];
  ?????for(int i=0;i?????{
  ??????F_WR_Public.VO_DevSpec vo_DevSpec = new F_WR_Public.VO_DevSpec();
  ??????//表中第11列保存的是设备类型的主键,但没有显示在表中。
  ??????vo_DevSpec.devSpecID= Int64.Parse(dataRowModify[i][10].ToString());
  ??????//
  ??????vo_DevSpec.col=Int64.MaxValue;
  ??????vo_DevSpec.num=Int64.MaxValue;
  ??????vo_DevSpec.row=Int64.MaxValue;
  
  ??????vo_DevSpec.specType=dataRowModify[i][1].ToString();
  ??????vo_DevSpec.manufacturer=dataRowModify[i][2].ToString();
  ??????vo_DevSpec.@long=dataRowModify[i][3].ToString();
  ??????vo_DevSpec.width=dataRowModify[i][4].ToString();
  ??????vo_DevSpec.high=dataRowModify[i][5].ToString();
  ??????if(!dataRowModify[i][6].ToString().Equals(""))
  ??????{
  ???????vo_DevSpec.num= Int64.Parse(dataRowModify[i][6].ToStrin




 相关文章  热门文章
如何使用 ADO.NET 轻松操纵数据库
C#.Net 网络程序开发基础之Socket篇
C#.Net 网络程序开发基础之TCP篇
运用 .net 中的 socket 实现文件传输
如何判断程序处于运行环境还是调试环境
从一个程序出发详细研究 DataReader
.NET 应用程序如何披上XP的外衣?
使用 C# 在应用程序之间发送消息
设计模式之工厂方法 FACTORY METHOD(三)
设计模式之工厂方法 FACTORY METHOD(二)

 文章评论


认证培训
热门专题       more
相关下载
论坛新帖
博 客