sf0l

   在做学生档案管理系统删除学生的记录的时候,想把删除了学生的记录显示在另外一个datagridview中,这样就牵涉到要在datagridview中添加列,但在添加列前要先添加行,要不能会报错,代码如下:

 

     Dgv1.Columns.Add("StuID", "学号");           //添加一列
     Dgv1.Rows.Add();                                       //添加行
     Dgv1.Rows[j].Cells [0].Value  = Dgv.Rows[i].Cells [1].Value ;           //将要删除的记录放到新的datagridview中来

 

界面设计如下图:

         

下面的datagridview是用来存放删除后的信息

下面是全部代码:

 public static int j = 0;    //用于记录现在datagridview的索引

 public static void  BatchDel(DataGridView Dgv,DataGridView  Dgv1)    //此为函数(用于删除)
        {
            int i = 0;
            bool flage = false; //用来标记是否选择了删除的数据
            string procName = "dbo.BatchDel";

           //下面是在Dgv1中添加行,用于存储删除后的数据记录
            Dgv1.Columns.Add("StuID", "学 号");
            Dgv1.Columns.Add("StuName", "姓 名");
            Dgv1.Columns.Add("StuSex", "性 别");
            //Dgv1.Columns[2].CellType=ty
            Dgv1.Columns.Add("StuJG", "民 族");
            Dgv1.Columns.Add("StuAge", "年 龄");
            Dgv1.Columns.Add("StuCardID", "身份证号码");
            Dgv1.Columns.Add("StuDT", "入学时间");
            Dgv1.Columns.Add("StuState", "在校状态");
            Dgv1.Columns.Add("StuPhone", "联系电话");
            Dgv1.Columns.Add("StuCrt", "政治面貌");
            Dgv1.Columns.Add("StuAddress", "家庭地址");
            Dgv1.Columns.Add("StuTxt", "简 介");
            while (i < Dgv.Rows.Count)                           //循环判断选中了哪个要删除
            {
                if (Dgv.Rows[i].Cells[0].Value == null || Dgv.Rows[i].Cells[0].Value.ToString() == "false") //没选中或没选什么都不做
                {

                }
                else
                {
                    SqlParameter[] sqr ={ new SqlParameter("TxtStuID", SqlDbType.VarChar, 20) };
                    sqr[0].Value = Dgv.Rows[i].Cells[1].Value;
                    Dgv1.Rows.Add();   //添加行

                    //赋值
                    Dgv1.Rows[j].Cells [0].Value  = Dgv.Rows[i].Cells [1].Value ;
                    Dgv1.Rows[j].Cells[1].Value = Dgv.Rows[i].Cells[2].Value;
                    Dgv1.Rows[j].Cells[2].Value = Dgv.Rows[i].Cells[3].Value;
                    Dgv1.Rows[j].Cells[3].Value = Dgv.Rows[i].Cells[4].Value;
                    Dgv1.Rows[j].Cells[4].Value = Dgv.Rows[i].Cells[5].Value;
                    Dgv1.Rows[j].Cells[5].Value = Dgv.Rows[i].Cells[6].Value;
                    Dgv1.Rows[j].Cells[6].Value = Dgv.Rows[i].Cells[7].Value;
                    Dgv1.Rows[j].Cells[7].Value = Dgv.Rows[i].Cells[8].Value;
                    Dgv1.Rows[j].Cells[8].Value = Dgv.Rows[i].Cells[9].Value;
                    Dgv1.Rows[j].Cells[9].Value = Dgv.Rows[i].Cells[10].Value;
                    Dgv1.Rows[j].Cells[10].Value = Dgv.Rows[i].Cells[11].Value;
                    j++;
                    Dgv.Rows.Remove(Dgv.Rows[i]);                         //原先的datagridview的那行要删除
                    DB.RunExecuteScalar(procName, sqr);                //从数据库中删除
                    flage = true;                                                            标记选择了删除的数据
                }
                i++;
            }
            if (flage ==false )
            {
                MessageBox.Show("请选择要删除的学生信息","提示",MessageBoxButtons.OK,MessageBoxIcon.Information );
            }
        }

分类:

技术点:

相关文章: