在做学生档案管理系统删除学生的记录的时候,想把删除了学生的记录显示在另外一个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 );
}
}