C#实验报告.docx
《C#实验报告.docx》由会员分享,可在线阅读,更多相关《C#实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
C#实验报告
实验设计说明书
实验设计名称:
c#实验程序设计
实验设计题目:
设计一个成语词典查询系统
学院名称:
信息工程学院
专业:
通信工程班级:
090423
学号:
姓名:
评分:
教师:
莫燕
2011年12月2日
一、实验目的:
本实验主要是使用ADO.NET、使用Command与DataReader对象、使用DataAdapter与DataSet连接数据库,练习简单的统计查询方法、绑定DataGridView到数据源的方法、绑定其他控件到数据源的方法。
二、实验要求:
实现用户登录,并对数据库中的成语进行浏览、查询(精确和模糊)、添加、删除、修改等基本功能。
三、数据库设计:
1、Access的设计:
数据库——是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。
Access数据库是Access2000创建的,而数据库文件的路径为C:
\data.mdb。
使用OleDb方式的字符串如下:
Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=c:
\data.mdb;
并用如下方式连接数据库对象:
Stringstr=
Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=c:
\data.mdb;
OleDbConnectionconn=
newOleDbConnection(str);
Conn.Open();
数据库表操作;
Conn.Close();
常用对象和控件:
1)DataSet对象
2)DataAdapter对象
3)DataGridView控件
该实验access数据库库名ku1.mdb,并将其放在Debug文件夹下。
2、表的结构:
该数据库里含有两张表(如下图所示),分别为用户表user1和词典表user2。
其中,表user1有username和password两个字段,且都为文本类型,并设username为主键。
而表user2有ID、汉字检索、拼音检索和备注四个字段,只有ID为数字类型,其余的都为文本类型。
另外,表user1记录的是用户名及密码,表user2记录的是词典查询内容。
本实验access设计表如下所示:
图3-1用户表user1
图3-2词典表user2的结构及记录
四、软件界面:
1、界面截图:
图4-1登录界面效果图
图4-2主窗体效果图
图4-3浏览和查询菜单的设计
2、控件属性及控件值
表4-1登录界面Form1
控件名称
属性
属性值
Label1
Text
用户名:
Label2
Text
密码:
textBox1
Text
textBox2
Text
Passwordchar
*
Button1
Text
登录
Button2
Text
取消
表4-2主窗体Form2
控件名称
属性
属性值
MenuStrip
Items
浏览(查看所有、保存所有、退出)、查询(精确查询、模糊查询)、添加、删除、刷新、退出
Label1
Text
选择方式
Label2
Text
设置值
Label3
Text
显示界面
Label4
Text
拼音:
Label5
Text
成语:
Label6
Text
备注:
Button1
Text
精确查询
Button2
Text
模糊查询
Button3
Text
添加
Button4
Text
修改
Button5
Text
删除
Button6
Text
导出word文件
GroupBox1
Text
操作界面
ComboBox1
Items
拼音检索、汉字检索
五、主要功能代码
一、登录界面主要功能
1、实现登录的功能代码:
stringstr=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=ku1.mdb";
OleDbConnectionconn=newOleDbConnection(str);
stringsqlstr="selectcount(*)fromuser1whereusername='"+textBox1.Text+"'andpassword='"+textBox2.Text+"'";
OleDbDataAdaptersqldata=newOleDbDataAdapter(sqlstr,conn);
conn.Open();
intn=(int)sqldata.SelectCommand.ExecuteScalar();
conn.Close();
if(n==0)
{
MessageBox.Show("用户或密码输入错误");
}
elseif(n==1)
{
Form2f2=newForm2();
f2.Show();
}
2、实现取消的功能代码:
this.Close();
二、主窗体的主要功能代码
1、实现精确查询的功能代码:
if(comboBox1.Text=="")
{
MessageBox.Show("请先选择查询方式!
","提示");
}
else
{
Stringstr=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=ku1.mdb";
OleDbConnectionsqlconnention1=newOleDbConnection();
sqlconnention1.ConnectionString=str;
stringsql="select*fromuser2where"+comboBox1.Text+"='"+textBox4.Text+"'";
OleDbCommandsqlcommand1=newOleDbCommand();
sqlcommand1.CommandText=sql;
sqlcommand1.Connection=sqlconnention1;
OleDbDataAdapterda=newOleDbDataAdapter(sql,sqlconnention1);
DataSetds=newDataSet();
try
{
sqlconnention1.Open();
da.Fill(ds);
}
catch(Exception)
{
MessageBox.Show("对不起!
精确查找失败!
","提示");
}
finally
{sqlconnention1.Close();}
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
5-1精确查询功能效果图
2、实现模糊查询的功能代码:
if(comboBox1.Text=="")
{
MessageBox.Show("请先选择查询方式!
","提示");
}
elseif(textBox4.Text=="")
{
MessageBox.Show("请先输入模糊查询的字段!
","提示");
}
else
{
Stringstr=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=ku1.mdb";
OleDbConnectionconn=newOleDbConnection(str);
Stringsqlstr="select*fromuser2where"+comboBox1.Text+"like'%"+textBox4.Text+"%'";
DataSetds=newDataSet();
OleDbDataAdaptersqldata=newOleDbDataAdapter(sqlstr,conn);
conn.Open();
sqldata.Fill(ds);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
conn.Close();
}
5-2模糊查询功能效果图
3、添加成语信息功能:
Stringstr=@"Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=ku1.mdb";
OleDbConnectionconn=newOleDbConnection(str);
stringcmdtext=@"insertintouser2(拼音检索,汉字检索,备注)values('"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"')";
OleDbCommandcmd=newOleDbCommand(cmdtext,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
5-3添加成语功能效果图
4、查看所有信息功能:
Stringstr=@"provider=Microsoft.Jet.OLEDB.4.0;
DataSource=ku1.mdb";
OleDbConnectionconn=newOleDbConnection(str);
Stringsqlstr="select*fromuser2where'"+comboBox1.Text+"'and'"+textBox4.Text+"'";
DataSetds=newDataSet();
OleDbDataAdaptersqldata=
newOleDbDataAdapter(sqlstr,conn);
conn.Open();
sqldata.Fill(ds);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
conn.Close();
5-4查看所有功能效果图
5、修改成语信息功能:
if(comboBox1.Text=="")
MessageBox.Show("请先选择修改的方式","提示");
elseif(textBox1.Text=="")
MessageBox.Show("请填入设置值","提示");
elseif(textBox2.Text!
="")
MessageBox.Show("不需要输入拼音","提示");
elseif(textBox3.Text!
="")
MessageBox.Show("不需要输入成语","提示");
elseif(textBox4.Text=="")
MessageBox.Show("请填入新的备注","提示");
else
{
Stringstr=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=user1.mdb";
OleDbConnectionconn=newOleDbConnection(str);
Stringcmdtext="updatehyt2008set备注='"+textBox4.Text+"'where"+comboBox1.Text+"='"+textBox1.Text+"'";
OleDbCommandcmd=newOleDbCommand(cmdtext,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
6、删除成语信息功能:
MessageBox.Show("删除前请先查询");
if(comboBox1.Text=="")
MessageBox.Show("请先输入删除的类型");
else
{
Stringstr=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=ku1.mdb";
OleDbConnectionconn=newOleDbConnection(str);
stringcmdtext=@"Updateuser2where"+comboBox1.Text+"='"+textBox4.Text+"'";
OleDbCommandcmd=newOleDbCommand(cmdtext,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
7、刷新功能:
Stringstr=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=ku1.mdb";
OleDbConnectionconn=newOleDbConnection(str);
stringcmdText="SELECT*FROMuser2";
OleDbDataAdapterda=newOleDbDataAdapter(cmdText,conn);
DataSetds=newDataSet();
8、清空功能:
textBox1.Text="";
textBox2.Text="";
textBox4.Text="";
9、退出功能:
Application.Exit();
六、注意事项
1、*.mdb要放在Debug文件夹下;
2、注意Access数据库与SQLServer数据库的程序代码不同;
3、SQLServer:
%代表任意多个字符,_代表单个字符;而Access:
*代表任意多个字符,?
代表单个字符。
4、若字段设置为文本类型,则注意要用单引号‘’引起来。
5、单引号‘本身是字符串常量;
6、“字符串的常量”为文本类型,同样要用单引号‘’引起来。
七、小结
通过本次实验的学习,学会了如何使用Access数据库,并知道怎样将VisualStudio连接数据库对象。
在其中,练习了简单的统计查询方法,以及绑定DataGridView到数据源的方法和绑定其他控件到数据源的方法。
因为这是最后一次实验,于是在这个实验里将之前学到的知识基本上运用上去了,知道了怎样系统的设计与编写程序,而不再像之前一样,只知道照着课本搬写程序。
尤其是本次实验运用的数据库与课本上的不一样,使得大家不得不靠自己来编写程序,使自己真正的学以致用。
当然,这其中就是因为有老师的帮助,才使得一窍不通的我们懂得了c#程序设计,感谢老师!
虽然这门课程结束了,但并不意味着c#的学习与应用也结束了,希望在以后的学习生活中能再次运用到它,为自己和别人设计出符合自己要求的东西。