数据库系统原理及应用.docx
- 文档编号:12610441
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:28
- 大小:943.06KB
数据库系统原理及应用.docx
《数据库系统原理及应用.docx》由会员分享,可在线阅读,更多相关《数据库系统原理及应用.docx(28页珍藏版)》请在冰点文库上搜索。
数据库系统原理及应用
南昌航空大学实验报告
课程名称:
数据库系统原理及应用实验名称:
学生成绩管理系统
班级:
指导老师:
学号:
姓名:
指导老师评定:
签名:
一、实验目的:
应用面向对象的思想联系数据库的SQL操作具体实现对数据表进行增删改的操作,进一步理解和掌握教材中的相关内容,掌握分析和设计一个大型数据库系统的基本思路与方法。
二、实验要求
独立完成系统数据库的设计,实现对数据库表进行增删改以及模糊查询、精确查询、数字统计的操作。
三、总体E-R图如下
学生表表
课程表
系统总体E-R图
四、实验步骤
1、创建连接
1、在MSSQLServer创建一数据库,在自己创建的数据库中添加学生表、课程表、选课表设计好表的结构及记录。
2、打开VisualStutio2010创建一项目,选择Windows窗体应用程序。
查看工具箱中是否有关于使用SQL的一些控件,若没有则在菜单工具选择工具箱,在选择工具箱页面中的.NETFramwork组件选项页中选中SqlCommand,SqlCommandBuilder,SqlConnection,SqlDataReader,SqlDataAdapter,添加控件到工具箱中。
3、向窗体中添加SqlConnection控件,然后点击视图菜单中的属性窗口,选中SqlConnection1控件,点击ConnectionString属性右侧的下拉箭头,选中新建连接,配置服务器名和数据库名,并进行测试链接。
4、
向Form中加入相应的控件并加入相应的处理事件。
五实验代码及实验结果
1、统计学生表中学生的总人数。
实验代码如下:
private:
System:
:
Voidbutton1_Click(System:
:
Object^sender,System:
:
EventArgs^e)
{System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection();
myconnetion->ConnectionString="DataSource=LVCHUNHUA;InitialCatalog=xuesheng;IntegratedSecurity=True";
try
{myconnetion->Open();;
if(myconnetion->State==ConnectionState:
:
Open)
{String^sql="selectcount(*)from学生";
System:
:
Data:
:
SqlClient:
:
SqlCommand^cmd=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlCommand(sql,myconnetion);
String^myinformation="当前的人数是:
"+cmd->ExecuteScalar()->ToString()+"人";
label1->Text=myinformation;
}}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据的异常信息是:
"+ex->Errors,"提示信息");}finally
{if(myconnetion->State==ConnectionState:
:
Open)
myconnetion->Close();}}
实验结果:
点击按键查人数,会在label1上显示学生表中的人数。
2、创建无连接的表:
完成向表中添加列、行及显示数据。
程序代码如下:
private:
System:
:
Voidbutton4_Click(System:
:
Object^sender,System:
:
EventArgs^e)
{DataGridView^dgv1=gcnewDataGridView();
this->Controls->Add(dgv1);//向窗体中添加DataGridView对象dgv1
DataTable^table=gcnewDataTable();
array
(1);
DataColumn^mycolumn=gcnewDataColumn();
mycolumn->ColumnName="ID";
mycolumn->DataType=System:
:
Type:
:
GetType("System.Int32");
table->Columns->Add(mycolumn);
mycolum[0]=mycolumn;
table->PrimaryKey=mycolum;
table->Columns->Add("姓名",String:
:
typeid);
table->Columns->Add("电话号码",String:
:
typeid);
table->Columns->Add("工作单位",String:
:
typeid);
DataRow^row=table->NewRow();
row["ID"]=85862;
row["姓名"]="苏桐";
row["电话号码"]="010822222";
row["工作单位"]="人民大学";
table->Rows->Add(row);
row=table->NewRow();
row["ID"]=85863;
row["姓名"]="梧桐";
row["电话号码"]="010866920";
row["工作单位"]="北京大学";
table->Rows->Add(row);
dgv1->DataSource=table;}
实验结果:
点击按键创建无连接,就会自动产生一个新表。
3、查表中内容:
将数据从表中导入到数据读取器中
程序代码:
private:
System:
:
Voidbutton2_Click(System:
:
Object^sender,System:
:
EventArgs^e)
{System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection();
myconnetion->ConnectionString="DataSource=LVCHUNHUA;InitialCatalog=xuesheng;IntegratedSecurity=True";
try
{myconnetion->Open();;
if(myconnetion->State==ConnectionState:
:
Open)
{String^sql="select*from学生";
System:
:
Data:
:
SqlClient:
:
SqlCommand^cmd=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlCommand(sql,myconnetion);
System:
:
Data:
:
SqlClient:
:
SqlDataReader^myreader=cmd->ExecuteReader();
DataSet^myset=gcnewDataSet();
array
myset->Load(myreader,LoadOption:
:
OverwriteChanges,Mytables);
String^mystring1="将数据从DaraReader中导入到DataSet";
String^mystring="";
foreach(DataTable^MyTableinmyset->Tables)
{foreach(DataRow^MyRowinMyTable->Rows)
{mystring=mystring+"\n";
for(inti=0;i
{mystring=mystring+MyRow[i]->ToString()+"";}
richTextBox1->Text=mystring1+mystring;}
myreader->Close();
}}}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据的异常信息是:
"+ex->Errors,"提示信息");}
finally
{if(myconnetion->State==ConnectionState:
:
Open)
myconnetion->Close();}}
实验结果:
在查表中内容旁边写上想要导入到richTextBox中的内容的表名,填好后点击按键查表中内容即可看到所要查的表的内容。
4、查看各表功能代码
1)学生表:
System:
:
Void查看学生表ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e){
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=xuesheng;IntegratedSecurity=True";
System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection(mystring);
String^sql="select*from学生";
DataTable^ourtable=gcnewDataTable();
System:
:
Data:
:
SqlClient:
:
SqlDataAdapter^ourda=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlDataAdapter(sql,myconnetion);
try
{ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据异常信息:
"+ex->Errors,"提示信息");}
}
2)课程表:
System:
:
Void查看课程表ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e)
{
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=
xuesheng;IntegratedSecurity=True";
System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection(mystring);
String^sql="select*from课程";
DataTable^ourtable=gcnewDataTable();
System:
:
Data:
:
SqlClient:
:
SqlDataAdapter^ourda=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlDataAdapter
(sql,myconnetion);
try
{ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据异常信息:
"+ex->Errors,"提示信息");}
}
3)选课表:
System:
:
Void查成绩表看ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e){
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=
xuesheng;IntegratedSecurity=True";
System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection(mystring);
String^sql="select*from选课";
DataTable^ourtable=gcnewDataTable();
System:
:
Data:
:
SqlClient:
:
SqlDataAdapter^ourda=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlDataAdapter(sql,myconnetion);
try
{ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据异常信息:
"+ex->Errors,"提示信息");}
}
查看学生表如下图5.1:
图5.1
5、修改各表中记录功能代码
1)学生表:
System:
:
Void修改学生表ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e){
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=
xuesheng;IntegratedSecurity=True";
System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection(mystring);
String^sql="update学生set姓名='"+textBox4->Text+"'where学号='"+textBox3->Text+"'";
DataTable^ourtable=gcnewDataTable();
System:
:
Data:
:
SqlClient:
:
SqlDataAdapter^ourda=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlDataAdapter
(sql,myconnetion);
try
{ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据的异常信息是:
"+ex->Errors,"提示信息");}
}
2)课程表:
System:
:
Void修改课程表ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e){
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=
xuesheng;IntegratedSecurity=True";
System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection(mystring);
String^sql="update课程set课程名='"+textBox1->Text+"'where课程号='"+textBox2->Text+"'";
DataTable^ourtable=gcnewDataTable();
System:
:
Data:
:
SqlClient:
:
SqlDataAdapter^ourda=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlDataAdapter
(sql,myconnetion);
try
{
ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据的异常信息是:
"+ex->Errors,"提示信息");}
}
3)选课表:
System:
:
Void修改成绩表ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e){
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=
xuesheng;IntegratedSecurity=True";
System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection(mystring);
String^sql="update成绩set成绩='"+textBox5->Text+"'where学号='"+textBox3->Text+"'and课程号='"+textBox2->Text+"'";
DataTable^ourtable=gcnewDataTable();
System:
:
Data:
:
SqlClient:
:
SqlDataAdapter^ourda=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlDataAdapter
(sql,myconnetion);
try
{
ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据的异常信息是:
"+ex->Errors,"提示信息");}
}
修改选课表结果若下图3.2所示:
图5.2(a)
图5.2(b)
6、添加记录到各表功能代码
1)学生表:
System:
:
Void添加学生表ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e){
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=
xuesheng;IntegratedSecurity=True";
System:
:
Data:
:
SqlClient:
:
SqlConnection^myconnetion=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlConnection(mystring);
String^sql="insertinto学生(学号,姓名)values('"+textBox3->Text+"','"+textBox4->Text+"')";
MessageBox:
:
Show(sql);
DataTable^ourtable=gcnewDataTable();
System:
:
Data:
:
SqlClient:
:
SqlDataAdapter^ourda=gcnewSystem:
:
Data:
:
SqlClient:
:
SqlDataAdapter
(sql,myconnetion);
try
{
ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch(System:
:
Data:
:
SqlClient:
:
SqlException^ex)
{MessageBox:
:
Show("数据异常信息:
"+ex->Errors,"提示信息");}
}
2)课程表:
System:
:
Void添加课程表ToolStripMenuItem_Click(System:
:
Object^sender,System:
:
EventArgs^e)
{
String^mystring="DataSource=WIN-SJCNU2CPQS0\\SQLEXPRESS;InitialCatalog=
xue
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 应用