C#.net设计性实验总结

来源:互联网 发布:淘宝上便宜好吃的零食 编辑:程序博客网 时间:2024/06/14 17:59

一、实验类型:设计性实验

二、实验目的:

      掌握并运用ADO.NET技术,实现一个C/S版本的信息管理系统;

三、实验内容:

    (1)设计一个学生成绩管理信息系统,能对学生的成绩记录进行方便的输入、查询、修改等操作,以及综合统计查询等。

    (2)对学生成绩的综合查询,如查询个人的单科或所有成绩/不及格成绩,查询某门课程的所有程序等。

    (3)参考示例文件DbDemo

    (4)至少实现对一个数据表的完整操作(CRUD,增删查改)、综合(复合条件)查询;

    (5)鼓励使用分层方式完成实验;

四、实验说明

(1)数据操作方式:

    A,Command- DataReader方式:根据SQL语句(带参数或不带参数)执行相应操作,如根据自己的Update、Insert、Delete语句更新、插入、删除记录;而Select语句则得到一个Reader对象,常用来单向返回少量只读数据到本地。

    B,DataAdapter- DataSet方式:

        如果设置好一个适配器的四个内部命令,则可以完整操作数据表(Fill方法对应SelectCommand,返回数据;Update方法对应其余三个命令,将修改后的数据保存到数据库中);

        如果希望在DataGridView中显示数据表,则必须使用Adapter的Fill方法将数据填充到数据表中,然后将该表指定为DataGridView的数据源(DataSource);

(2) 数据库类型的选择问题;

· 正确区分“文件型”数据库(如Access、Sqlserver文件型)与“服务型”数据库(如专用的Sql Server、Oralce数据库);

· 自己选用数据库类型。注意,实验室使用SQL  Server 2005 Express,可能无法演示。

(3)正确理解和熟练运用ADO.NET 数据访问模型

        理解并练习运用数据库相关理论:事务、关系/外键约束、存储函数等;

 

五、具体功能

复合查询:

其实也就是使用了group by等的sql方法编写了一些sql查询语句,来进行对表的复合查询

 

快速录入:

运用了一些人性化的设计例如锁定课程还有键盘事件来让使用者获得更好地输入体验;

 

 

 

 

数据库功能类DBhelper

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using MySql.Data.MySqlClient;//导入用MySql的包

using System.Data;//引用DataTable

 

namespace DB

{

    public class DBHelper

    {

        /// <summary>

        /// 得到连接对象

        /// </summary>

        /// <returns></returns>

        public MySqlConnection GetConn()

        {

            string connString = "Database='student';Data Source='localhost';User Id='root';Password='123456';Charset=utf8";

            MySqlConnection mysqlconn = new MySqlConnection(connString);

            return mysqlconn;

        }

    }

 

 

    public class SQLHelper : DBHelper

    {

        /// <summary>

        /// 查询操作

        /// </summary>

        /// <param name="sql"></param>

        /// <returns></returns>

        public DataTable Selectinfo(string sql)

        {

            MySqlConnection mysqlconn = null;

            MySqlDataAdapter sda = null;

            DataTable dt = null;

            try

            {

                mysqlconn = base.GetConn();

 

                sda = new MySqlDataAdapter(sql, mysqlconn);

                dt = new DataTable();

                sda.Fill(dt);

 

                return dt;

            }

            catch (Exception)

            {

                throw;

            }

 

        }

 

        public MySqlDataReader getSearchData(string sql)

        {

            MySqlConnection conn = GetConn();

            conn.Open();

            MySqlCommand comm = new MySqlCommand(sql, conn);

            MySqlDataReader reader = comm.ExecuteReader();

            return reader;

        }

 

        public MySqlDataReader getCloumnData(string column, string tableName)

        {

            string sql = "select " + column + " from " + tableName;

            MySqlConnection conn = GetConn();

            conn.Open();

            MySqlCommand comm = new MySqlCommand(sql, conn);

            MySqlDataReader reader = comm.ExecuteReader();

            return reader;

        }

 

 

        /// <summary>

        /// 增删改操作

        /// </summary>

        /// <param name="sql">sql语句</param>

        /// <returns>执行后的条数</returns>

        public int AddDelUpdate(string sql)

        {

 

            MySqlConnection conn = null;

            MySqlCommand cmd = null;

 

            try

            {

                conn = base.GetConn();

                conn.Open();

                cmd = new MySqlCommand(sql, conn);

                int i = cmd.ExecuteNonQuery();

 

                return i;

 

                conn.Close();

            }

            catch (Exception)

            {

 

                throw;

            }

 

        }

    }

}

 

 

  

 

 

 

一. 程序运行效果图

主窗口

 

 

 

表信息窗口

 

 

 

添加信息

 

 

修改信息

 

 

删除信息

 

 

简单搜索

 

 

学生信息查询

 

 

 

复合查询

 

 

 

录入成绩

 

 

四.实验总结

 通过这次综合性实验,我对.net的操作有了更深一步的了解,也让我惊诧于.net设计的方便和人性化。

老师上课的时候跟我们介绍的都是sql server的例子,但是我开始做实验的时候发现我电脑里的vs2012默认是不带sql server的,这让我纠结了很久,最后我上网查资料以及通过问同学得知在vs上操作mysql也是一样的,于是我就使用了mysql的数据库,虽然因为种种原因连接了很久才连上了。

实验过程中,我一直都是参照老师给我们的demo来进行设计的,基本大的问题没有遇到,但是各种小的问题也确实让我在这个实验上花了不少的时间和精力。

 

 

 

 

 

0 0