综合设计实验成语词典查询系统设计
一、实验目的
1.了解SQL语言各语句的语法与使用方法;
2.掌握Command 和DataSet两个核心组件的常用属性、方法的含义及使用方法;
3.掌握利用Command 和DataSet两个核心组件实现数据库记录的插入、修改、删除的方法;
4.使学生能够通过老师讲过的内容灵活运用多种控件,实现对简单数据库的维护,能够自行调试,显示或保存实验结果。并使学生更深入的掌握面向对象程序设计这门课程。
二、基本要求
(1)创建成语词典查询系统所需的表(成语词典表),并能连接上数据库。
(2)完成对所建成语词典表的插入、修改、删除功能
(3)完成对成语的精确和模糊查询
(4)完成对成语词典查询结果保存为Word文档
(5)为完成上述功能,还需运用菜单、工具条等多种控件
三、实验步骤:
(1)创建数据库:打开SQL Server2008,创建数据库——成语词典库,然后新建一个名为成语词典表,如图1所示。
图1 成语词典表的结构
(2)创建项目:在VC++中创建一个名为“成语词典查询系统”的Windows窗体应用程序项目。
(3)设计界面:在空白窗体中添加菜单MenuStrip、标签、TextBox、DataGridView等控件,对控件的属性进行修改,如表1所示:
表1 控件属性及属性值
控件名称属性属性值
MenuStrip Items 浏览(查看所有、保存结果、退出)、查询(精确查询、模糊查询)、添加、删除、修
改、退出
Label1 Text 选择查询方式:GroupBox1 Text 操作界面
Label2 Text 设置查询值:
Label3 Text 拼音:
Label4 Text 成语:
Label5 Text 备注:
Label6 Text 显示界面:
button1 Text 精确查询
button2 Text 模糊查询
button3 Text 添加
button4 Text 导出Word文件》
button5 Text 修改
button6 Text 删除
comboBox1 Items 拼音检索、汉字检索
四.具体实验步骤如下
(1)向窗体添加MenuStrip、DataGridView控件。运行时单击“查看所有记录”菜单项,对于DataGridView 对象查看表中所有记录的内容,单击“精确查询”“模糊查询”菜单项,可以按照条件进行精确查询和模糊查询,选择“添加记录”“修改记录”“删除记录”选项可对表中内容进行添加.修改.删除等操作,单击“保存修改”菜单项,就能将更新结果保存到数据源中。
(2)在窗体头文件中添加包含文件,代码如下:
using namespace System::Data::SqlClient;
(3)并且在窗体类中要定义一个SqlConnection类型的对象con,并在Form1类中的构造函数中进行初始化,代码如下:public:
Form1(void)
{
InitializeComponent();
//
//TODO: 在此处添加构造函数代码
//
con=gcnew SqlConnection();//在窗体的构造函数中对con做初始化
con->ConnectionString = L"Data Source=TAIVT873Q0QUBF8;Initial Catalog=成语词典库;Integrated Security=True";
}
(4)“查看所有记录”菜单项的单击事件处理程序代码如下:
private: System::Void 查看所有ToolStripMenuItem_Click(System::Object^  sender,
System::EventArgs^  e) {
String^sql=" select * from 成语词典表";
MessageBox::Show(sql);
DataSet^ds=gcnew DataSet();
SqlDataAdapter^ourda=gcnew SqlDataAdapter(sql,con);
try
{
ourda->Fill(ds,"成语词典表");
this->dataGridView1->DataSource=ds->Tables ["成语词典表"];
}
catch (System::Data::SqlClient::SqlException^ex)
{ MessageBox::Show("数据的异常信息是:"+ex->Errors,"提示信息");
}
(5)“精确查询”菜单项的单击事件处理程序代码如下:
private: System::Void 精确查询ToolStripMenuItem_Click(System::Object^  sender,
System::EventArgs^  e) {
String^sql=" select * from 成语词典表 where "+ comboBox1-
>Text+"='"+textBox1->Text+"'";
MessageBox::Show(sql);
DataTable^ourtable=gcnew DataTable();
SqlDataAdapter^ourda=gcnew SqlDataAdapter(sql,con);
try
{
ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch (System::Data::SqlClient::SqlException^ex)
{MessageBox::Show("数据异常信息信息是+ex->Errors,"提示信息"); }
}
(6)“模糊查询”菜单项的单击事件处理程序代码如下:
private: System::Void 模糊查询ToolStripMenuItem_Click(System::Object^  sender,
System::EventArgs^  e) {
String^sql=" select * from 成语词典表 where "+ comboBox1->Text + " like
' % " + textBox1->Text + " % ' ";
MessageBox::Show(sql);
DataTable^ourtable=gcnew DataTable();
SqlDataAdapter^ourda=gcnew SqlDataAdapter(sql,con);
try
{
ourda->Fill(ourtable);
this->dataGridView1->DataSource=ourtable;
}
catch (System::Data::SqlClient::SqlException^ex)
{MessageBox::Show("数据异常信息是"+ex->Errors,"提示信息"); }
}
(7)“添加”菜单项的单击事件处理程序代码如下:
private: System::Void 添加ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
try
{
con->Open();;
if (con->State==ConnectionState::Open)
{
menustrip和toolstrip
String^sql=" insert into 成语词典表(拼音检索,汉字检索,备注,ID) values ('"+textBox2->Text+"','"
+textBox3->Text+"','"+textBox4->Text+"','"+textBox5-
>Text+"')";
MessageBox::Show(sql);
SqlCommand^cmd=gcnew SqlCommand(sql,con);
cmd->ExecuteNonQuery();
MessageBox::Show("成功添加");
}
}
catch (SqlException^ex)
{
MessageBox::Show("数据异常信息是"+ex->Errors,"提示信息");
}
finally
{
if (con->State==ConnectionState::Open)
con->Close();
}
}
(8)“删除”菜单项的单击事件处理程序代码如下:
private: System::Void 删除ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
String^sql=" delete 成语词典表 where " + comboBox1->Text + "='" +
textBox1->Text + "'";
MessageBox::Show(sql);
DataTable^ourtable=gcnew DataTable();
SqlDataAdapter^ourda=gcnew SqlDataAdapter(sql,con);
try
{
ourda->Fill(ourtable);
}
catch (System::Data::SqlClient::SqlException^ex)
{
MessageBox::Show("数据异常信息是"+ex->Errors,"提示信息");
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。