欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库实习详解:基于数据库的C/S程序开发

程序员文章站 2023-03-08 11:01:43
老版本的实习指导在这一块的内容完全过时,过于简略的内容对没有任何窗口程序编写经验的初学者很不友好,网上也缺乏详细的教程以供初学者借鉴。介于此,本文将对数据库实习“基于数据库的C/S程序开发”的操作过程进行详细展示,以供读者参考,如果本文对你有帮助,请点赞,这也是支持我继续写下去的动力。实验目的了解用C#开发基于SQL Server数据库的窗体应用程序的过程。实验步骤环境搭建该项目采用C#开发,因此在编写程序之前需要搭建环境。打开Visual Studio 2019,点击“工具——获取工具和功能”...

老版本的实习指导在这一块的内容完全过时,过于简略的内容对没有任何窗口程序编写经验的初学者很不友好,网上也缺乏详细的教程以供初学者借鉴。
介于此,我将在本文中对数据库实习“基于数据库的C/S程序开发”的操作过程进行详细展示,以供读者参考,如果本文对你有帮助,请点赞,这也是支持我继续写下去的动力。

实验目的

了解用C#开发基于SQL Server数据库的窗体应用程序的过程。

实验步骤

环境搭建

该项目采用C#开发,因此在编写程序之前需要搭建环境。打开Visual Studio 2019,点击“工具——获取工具和功能”,勾选 “.NET桌面开发”进行安装。

创建项目

选择Windows窗体控件库(.NET Framework)
数据库实习详解:基于数据库的C/S程序开发

绘制界面

打开工具箱,拖拽控件至主窗体Form1。
数据库实习详解:基于数据库的C/S程序开发
选中控件,在属性——Text可以更改控件上的文字
在项目右键,选择添加,新建项,选择添加窗体。
数据库实习详解:基于数据库的C/S程序开发

拖拽控件,绘制学生信息添加窗口。
数据库实习详解:基于数据库的C/S程序开发
同样的方法添加然后绘制学生信息修改窗口。
数据库实习详解:基于数据库的C/S程序开发

选中学号编辑框,将其Name改为txt_sid,如下图所示:
数据库实习详解:基于数据库的C/S程序开发
用同样的方法按照下表给其他控件改名
控件 更改的(Name)

主窗口

学号输入框 txt_sid
姓名输入框 txt_sname
查询按钮 btn_find
新增按钮 btn_add
删除按钮 btn_delete
编辑按钮 btn_update
DataGridCiew列表控件 studentsList

新增窗口
学号输入框 txt_add_sid
姓名输入框 txt_add_sname
邮箱输入框 txt_add_email
年级输入框 txt_add_grade
确定按钮 btn_confirm_add

添加窗口
学号输入框 txt_update_sid
姓名输入框 txt_update_sname
邮箱输入框 txt_update_email
年级输入框 txt_update_grade

如果你在没给控件改名之前不小心双击了控件,可以点击自动生成的代码上方的“1个引用”,双击跳转到引用它的位置,删除引用它的这行代码,然后再回来删除自动生成的函数。
数据库实习详解:基于数据库的C/S程序开发

配置数据库

修改App.config文件,添加以下选中的代码:
数据库实习详解:基于数据库的C/S程序开发

<appSettings>
<add key="connectionString"> 
		value="server=localhost;database=School;uid=sa;pwd=123456"/>
</appSettings>

右键“引用”,选择添加引用,
数据库实习详解:基于数据库的C/S程序开发
勾选
数据库实习详解:基于数据库的C/S程序开发
打开SQL Server Management,展开“安全性”,展开“登录名”,右键单击“sa”,打开属性,把密码改为123456。点击“状态”做如下设置:
数据库实习详解:基于数据库的C/S程序开发
如图右键属性,做如下配置:
数据库实习详解:基于数据库的C/S程序开发
在安全性勾选SQL Server和Windows 身份验证
数据库实习详解:基于数据库的C/S程序开发
在开始菜单打开SQL Server 配置管理器
数据库实习详解:基于数据库的C/S程序开发
重启SQL Server服务
数据库实习详解:基于数据库的C/S程序开发

编写代码

在Form1.cs的如下图所示的位置添加该代码:
数据库实习详解:基于数据库的C/S程序开发

static string connectionString =System.Configuration.ConfigurationManager.AppSettings["connectionString"];

        public static DataSet Query(String sql)
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            try
            {
                con.Open();
                sda.Fill(ds, "students");
                return ds;
            }
            catch (SqlException e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                sda.Dispose();
                con.Close();
            }
        }

        public static int ExecuteSql(String sql)
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand(sql, con);
            try
            {
                con.Open();
                int rows = cmd.ExecuteNonQuery();
                return rows;
            }
            catch(SqlException e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                cmd.Dispose();
                con.Close();
            }
        }

在Form3.cs中,对Form3函数做如下修改:
数据库实习详解:基于数据库的C/S程序开发

public Form3(string sid,string sname,string email,string grade)
{
	InitializeComponent();
	txt_update_sid.Text = sid;
	txt_update_sname.Text = sname;
	txt_update_email.Text = email;
	txt_update_grade.Text = grade;
}

在主窗口双击“查询”按钮,在生成的函数中填入如下代码,表示点击这个控件要进行的操作。
数据库实习详解:基于数据库的C/S程序开发

string sid = txt_sid.Text.Trim();
string sname = txt_sname.Text.Trim();
this.studentsList.DataSource = Query("select * from students where sid like '%" + sid + "%' and sname like '%'").Tables["students"];

在主窗口双击“新增”按钮,在生成的函数中填入如下代码:
数据库实习详解:基于数据库的C/S程序开发

Form2 childrenForm = new Form2();
childrenForm.Owner = this;
childrenForm.Show();

在主窗口双击“删除”按钮,在生成的函数中填入如下代码:
数据库实习详解:基于数据库的C/S程序开发

int a = studentsList.CurrentRow.Index;
string sid = studentsList.Rows[a].Cells[0].Value.ToString().Trim();
string sql = "delete from students where sid='" + sid + "'";

if(ExecuteSql(sql)>0)
{
    MessageBox.Show("删除成功");
}

在主窗口双击“更新”按钮,在生成的函数中填入如下代码:
数据库实习详解:基于数据库的C/S程序开发

int a = studentsList.CurrentRow.Index; 
string[] str = new string[studentsList.Rows.Count]; 
for (int i=0; i < studentsList.Columns.Count; i++) 
{
     str[i] = studentsList.Rows[a].Cells[i].Value.ToString();
}
Form3 childrenForm = new Form3(str[0], str[1], str[2], str[3]);
childrenForm.Owner = this;
childrenForm.Show();

在Form2(学生信息添加窗口)双击“确定”按钮,在自动生成的函数中添加如下代码:
数据库实习详解:基于数据库的C/S程序开发

string sid = txt_add_sid.Text.Trim();
string sname = txt_add_sname.Text.Trim();
string email = txt_add_email.Text.Trim();
string grade = txt_add_grade.Text.Trim();
string sql = "insert into students values('" + sid + "','" + sname + "','" + email + "','" + grade + "')";
Form1.ExecuteSql(sql);
this.Close();

在Form3(学生信息修改窗口)双击“确定”按钮,在自动生成的函数中添加如下代码:
数据库实习详解:基于数据库的C/S程序开发

string sid = txt_update_sid.Text.Trim();
string sname = txt_update_sname.Text.Trim();
string email = txt_update_email.Text.Trim();
string grade = txt_update_grade.Text.Trim();
string sql = "update students set sname='"+sname+"',email='"+email+"',grade='"+grade+"' where sid='"+sid+"'";
Form1.ExecuteSql(sql);
this.Close();

测试程序

运行之前,确保你本地的SQL server数据库中有名为School的数据库,并有名为student,包含sid,sname,email,grade四个属性的表。

数据查询

输入待查询的关键字,点击查询,结果如下:
数据库实习详解:基于数据库的C/S程序开发

数据添加

数据库实习详解:基于数据库的C/S程序开发
经查询,添加成功:
数据库实习详解:基于数据库的C/S程序开发

数据更新

比如要修改付同学的email,从1003670@修改为123456@,
数据库实习详解:基于数据库的C/S程序开发
确定后,再次查询,可见付同学的email已被修改。
数据库实习详解:基于数据库的C/S程序开发

数据删除

删除付同学的记录。
选中,点击删除。
数据库实习详解:基于数据库的C/S程序开发
再次查询已经没有这条记录了。
数据库实习详解:基于数据库的C/S程序开发

写在后面

本文只能帮你应付本次实习,如果要真正掌握基于数据库的应用程序编写,还需踏实学习。如果本文对你有帮助,请点赞,这也是支持我继续写下去的动力。

本文地址:https://blog.csdn.net/qq_20115319/article/details/107318790