DataGridView控件的使用Word文档下载推荐.docx
《DataGridView控件的使用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DataGridView控件的使用Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
OleDbDataAdapterda=newOleDbDataAdapter(sql,conn);
DataSetds=newDataSet();
da.Fill(ds);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
toolStripStatusLabel1.Text="
共"
+ds.Tables[0].Rows.Count.ToString()+"
人"
;
//设置状态条显示查询到得学生人数
}
页面的Load事件
privatevoidForm1_Load(objectsender,EventArgse)
cb_mode.SelectedIndex=0;
//查询方法默认为显示所有考生
stringsql;
sql="
selecttest_noas学号,test_nameas姓名,test_sexas性别,test_classas班级,test_deptas院系,login_countas登录次数,login_timeas登录时间fromtest_user"
Databind(sql);
查询按钮的单击事件
privatevoidbutton1_Click(objectsender,EventArgse)
stringsql="
switch(cb_mode.SelectedIndex)
//case0:
select*fromtest_user"
break;
case1:
sql+="
wheretest_no='
"
+txb_key.Text.Trim()+"
'
break;
case2:
wheretest_namelike'
%"
%'
case3:
wheretest_sex='
case4:
wheretest_classlike'
case5:
wheretest_deptlike'
2.手动添加数据列的方式
在窗体添加一个DataGridView控件后,右键单击
按钮,弹出如下对话框,选择“添加列”,
弹出如下“编辑列”对话框,如下图所示,添加数据列,设置每一列的数据字段DataPropertyName属性(一般为字段名)和列标题属性HeaderText(列的标题名称)
用户还可以根据自己的需要设置其他属性,如列宽、排序、只读、提示文字等属性
制作任务:
考生信息查询,界面如下图所示:
请同学自己完成!
练习:
网络考试系统试题添加模块的制作。
考试科目来自数据表Exam_subject,题型有“单选、多选、填空和判断”,所属章节有:
1—10,小题数目:
1—10。
单击确定按钮,则把用户输入题目添加到数据库中,同时在窗口下方显示用户添加的题目。
如图所示,
二.用DataGridView来更新表中数据
主要属性:
CurrentCell当前单元格
1、返回当前单元格的值
dataGridView1.CurrentCell.Value.
2、返回当前行的行号
dataGridView1.CurrentCell.RowIndex
3、返回当前列的列号
dataGridView1.CurrentCell.ColumnIndex
注意:
用DataGridView来添加、修改、删除数据,用户所作的修改,系统会自动保存到DataGridView控件DataSource属性所对应的数据集中,要想把数据保存到数据库中,还调用数据适配器的Update方法把数据集中的修改保存到物理数据库。
数据的删除,如下图所示,用户选择dataGridView控件中一行,单击“删除”按钮删除当前用户选中的行。
定义三个全局变量
OleDbConnectionconn;
OleDbDataAdapterda;
DataSetds;
删除按钮的单击事件
privatevoidbutton2_Click(objectsender,EventArgse)
if((MessageBox.Show("
你确定删除当前记录吗?
"
警告!
MessageBoxButtons.YesNo,MessageBoxIcon.Warning))==DialogResult.Yes)
//删除数据
//首先删除数据集中的该条记录
inti=dataGridView1.CurrentCell.RowIndex;
//得到当前记录号
if(i>
=0)
ds.Tables[0].Rows[i].Delete();
//用数据集来更新物理数据库
OleDbCommandBuildercb=newOleDbCommandBuilder(da);
if(da.Update(ds)>
0)
MessageBox.Show("
数据删除成功!
else
数据删除失败!
当前无可删除的数据!
//不删除,退出
return;
如上例所示,当用户单击性别列中数据时,弹出一个组合框,方便用户修改考生的性别信息。
如下图所示:
1.定义一个全局组合框控件变量,用来动态生成组合框
publicComboBoxMycombo=newComboBox();
3.窗口的Load事件中添加如下代码:
Mycombo.Name="
mycombo"
Mycombo.Items.Clear();
Mycombo.Items.Add("
男"
女"
Mycombo.TextChanged+=newEventHandler(Mycombo_changed);
//为生成的组合框控件,添加文本改变事件处理函数
dataGridView1.Controls.Add(Mycombo);
//把组合框添加到DataGridView中
4.定义组合框的文本改变事件处理函数
当组合框中的文本发生变化时,把dataGridView当前单元格的内容设为组合框的内容
privatevoidMycombo_changed(objectsender,EventArgse)
if(dataGridView1.CurrentCell.ColumnIndex==2)
dataGridView1.CurrentCell.Value=Mycombo.Text;
5.为DataGridView
控件的单元格获得焦点事件添加如下代码
即当性别列——即第2列(从0开始)单元格获得焦点时,显示生成的组合框
privatevoiddataGridView1_CellEnter(objectsender,DataGridViewCellEventArgse)
{
if(e.ColumnIndex==2)
{
Mycombo.Visible=false;
Mycombo.Width=80;
Mycombo.Left=dataGridView1.GetCellDisplayRectangle(2,dataGridView1.CurrentRow.Index,true).Left;
//组合框的横坐标为当前单元格的横坐标
Mycombo.Top=dataGridView1.GetCellDisplayRectangle(2,dataGridView1.CurrentRow.Index,true).Top;
////组合框的纵坐标为当前单元格的纵坐标
Mycombo.Text=dataGridView1.CurrentCell.Value.ToString()+"
"
//组合框的文本为当前单元格的值
Mycombo.Visible=true;
//组合框显示
Else//如果不是第2列,组合框则不可见
//组合框隐藏
6.DataGridView控件的单击事件
单击DatagridView控件,组合框隐藏
privatevoiddataGridView1_Click(objectsender,EventArgse)
单击为院系列中数据弹出一个组合框,组合框中显示本校所有的院系,请同学们自己完成!
用DatagirdView控件修改和添加考生数据
1.单击DataGridView控件右上角控制按钮,弹出如下窗口,设置如下:
这样在DataGridView中就可以添加、编辑和删除数据了。
在此我们主要讲解数据的保存,也就是把用户所做的修改保存到物理数据库中。
(添加、编辑和删除具体的操作非常简单)
2.如上图所示,在窗口添加一个“保存”按钮
为了防止用户,没有保存就直接关闭了窗口的情况出现,我们定义一个逻辑型全局变量Changed,如果用户修改了DataGridView中数据,changed变量的值为True,否则为False。
当用户修改了DataGridView中数据,而没有单击保存按钮进行保存,就直接关闭窗口,此时程序应提醒用户应先保存,再关闭窗口。
Booleanchanged;
在窗口的加载事件和删除按钮的单击事件添加一行:
changed=false;
保存按钮的单击事件:
privatevoidbutton3_Click(objectsender,EventArgse)
数据保存成功!
changed=false;
3.窗口的正关闭事件(Closeing)
当用户修改DataGridView控件的单元格值(包括添加和删除记录),而没有保存时,弹出对话框提醒用户是否需要保存。
privatevoidForm2_FormClosing(objectsender,FormClosingEventArgse)
if(changed==true)
数据还未保存!
你确定退出吗?
(Y/N)"
提示"
MessageBoxButtons.YesNo,MessageBoxIcon.Warning))==DialogResult.Yes)
e.Cancel=false;
//取消关闭窗口动作,不退出
e.Cancel=true;
//不保存,直接退出
4.DataGridView控件的单元格值改变事件
当DataGridView控件的单元格值发生变化时,把变量changed置为True.
privatevoiddataGridView1_CellValueChanged(objectsender,DataGridViewCellEventArgse)
changed=true;
请同学们参考以上的例子,制作一个考试系统题库管理的模块,包括试题的添加、修改和删除等功能。