我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#数据库操作的示例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#数据库操作的示例详解

功能需求

1,利用随机数模拟产生每次考试成绩

2,将每次考试成绩存入到数据库

3,将每次考试成绩划分优、良、中、差、不及格五类,并作为查询条件,查询符合每种水平的成绩

技术知识点

1.random类的使用

2.数据库的链接、添加数据、查询数据、读取数据

3,combox控件的使用

4,DataGridView控件的使用

准备工作

创建数据库,本文案例使用Sql Server2014,数据库表如下:

实现步骤

1.模拟产生考试成绩,点击考试按钮,产生六科考试成绩

            Random rd = new Random();//实例化random类
            int[] scores = new int[6];
            for(int i = 0;i<scores.Length;i++)
            {
                scores[i] = rd.Next(0, 100);
                SumScore += scores[i];//总成绩
            }
            AvgScore = SumScore / scores.Length;//平均分
            ScoreLevel = GetScoreLevel(SumScore);
            tbx01.Text = scores[0].ToString();
            tbx02.Text = scores[1].ToString();
            tbx03.Text = scores[2].ToString();
            tbx04.Text = scores[3].ToString();
            tbx05.Text = scores[4].ToString();
            tbx06.Text = scores[5].ToString();

2.将每次考试成绩存储到数据库中,通过按钮触发。

//创建数据库操作类,DBOpera,方便其他功能在进行数据库操作时,减少重复工作。
//数据库链接字符串,使用private防止为外部访问修改
        private static string connstring = @"Data source = RANDOM\SQLEXPRESS; Initial Catalog = DB1;User ID=sa; pwd = 123456";
        //数据库链接对象
        public static SqlConnection conn = new SqlConnection(connstring);
        
        //定义执行sql查询语句方法
        public int ExecSQL(string sql)
        {
            //执行查询语句后并不需要返回所有的查询结果,而仅需要返回一个值,
            //例如查询表中的记录行数
            //实例化sqlcommand类。
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (conn.State == ConnectionState.Closed)//如果当前数据库链接处于关闭状态
                conn.Open();
            int num = Convert.ToInt32(cmd.ExecuteScalar());//执行查询
            conn.Close();
            return num;
        }

        public int ExecSQLResult(string sql)
        {
            

            //实例化sqlcommand对象
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (conn.State == ConnectionState.Closed)
                conn.Open();
            int result = cmd.ExecuteNonQuery();
            conn.Close();
            return result;
        }
        public DataSet GetDataSet(string sql)
        {
            //将数据表中的数据查询出来并添加到 DataSet 中
            //每个 DataSet 都是由若干个数据表构成的,DataTable 即数据表,
            //每个 DataTable 也都是由行和列构成的,
            //行使用 DataRow 类表示、列使用 DataColumn 类表示。
            SqlDataAdapter sqlda = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            sqlda.Fill(ds);   //填充数据集
            return ds;   // 返回数据集
        }

        public SqlDataReader GetDataReader(string sql)
        {
            //读取表中的查询结果,以只读方式读取的(即不能修改 DataReader 中存放的数据)
            //当查询结果仅为一条时,可以使用 if 语句查询 DataReader 对象中的数据,
            //如果返回值是多条数据,需要通过 while 语句遍历 DataReader 对象中的数据。
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (conn.State == ConnectionState.Closed)
                conn.Open();
            SqlDataReader sqlDR = cmd.ExecuteReader();
            return sqlDR;
        }
    }

//外部调用DBOpera类,将模拟产生的考试成绩存储到数据库中
//将考试成绩保存到数据库中
            //调用DataOperaor类中ExecSQLResult方法
            string sql = "insert into MScore(Level,Math,Chinese,English," +
                "Chemical,Physics,Biology,TotalScore,AvgScore) values" +
                "('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')";
            //填充SQL语句
            sql = string.Format(sql, ScoreLevel, tbx01.Text, tbx02.Text, tbx03.Text, tbx04.Text, tbx05.Text,
                tbx06.Text, SumScore.ToString(), AvgScore.ToString());
            int result = DbOpera.ExecSQLResult(sql);
            if (result != -1)
            {
                MessageBox.Show("数据存储成功");
            }
            else
            {
                MessageBox.Show("数据存储失败!");
            }

3.利用组合框,显示所有考试成绩的评语

//创建方法,判断成绩的评语
public static string GetScoreLevel(int score)
        {
            string level = null;
           //总分540-600为优,480-540为良,420-480为中,360-420为差,低于420为不及格
           if(score >= 540)
            {
                level = "优";
            }
           else if(score >= 480)
            {
                level = "良";
            }
            else if (score >= 420)
            {
                level = "中";
            }
            else if (score >= 360)
            {
                level = "差";
            }
            else 
            {
                level = "不及格";
            }
            return level;
        }

//从数据库读取每次考试成绩评语,并将数据显示到组合框中
//查询考试成绩所处分段,并将这些信息在组合框中显示
            //定时查询语句
			//cbx01为控件combox名称
            ArrayList arylist = new ArrayList();
            string sql = "select distinct level from MScore";
            DataSet ds = DbOpera.GetDataSet(sql);
            if(ds.Tables[0].Rows.Count >0)
            {
                DataTable dt = ds.Tables[0];
                foreach (DataRow dr in dt.Rows)
                {
                    arylist.Add(dr[0].ToString().Trim());
                }
                cbx01.DataSource = arylist;
            }

4.根据查询条件,查询符合条件的数据,并使用DataGridView控件显示

private void button3_Click(object sender, EventArgs e)
        {
            //查询考试总成绩大于查询值的成绩分布数据
            //定义查询语句
            string sql = "select Math,Chinese,English,Chemical,Physics,BIology,TotalScore,AvgScore from mscore where level ='" + cbx01.Text.ToString().Trim()+"'";

            //创建DataSet类的对象
    		//datagridview1为控件datagridview名称
            DataSet ds = DbOpera.GetDataSet(sql);
            dataGridView1.DataSource = ds.Tables[0];
            dataGridView1.Columns[0].HeaderText = "数学";
            dataGridView1.Columns[1].HeaderText = "语文";
            dataGridView1.Columns[2].HeaderText = "英语";
            dataGridView1.Columns[3].HeaderText = "化学";
            dataGridView1.Columns[4].HeaderText = "物理";
            dataGridView1.Columns[5].HeaderText = "生物";
            dataGridView1.Columns[6].HeaderText = "总分";
            dataGridView1.Columns[7].HeaderText = "平均分";
            // 设置数据表格为只读
            dataGridView1.ReadOnly = true;
            //不允许添加行
            dataGridView1.AllowUserToAddRows = false;
            //背景为白色
            dataGridView1.BackgroundColor = Color.White;
            //只允许选中单行
            dataGridView1.MultiSelect = false;
            //整行选中
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}

动画演示效果

以上就是C#数据库操作的示例详解的详细内容,更多关于C#数据库操作的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#数据库操作的示例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Laravel中数据库迁移操作的示例详解

这篇文章主要为大家详细介绍了Laravel实现数据库迁移操作的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
2023-02-09

node操作mysql数据库实例详解

本文实例讲述了node操作mysql数据库的方法。分享给大家供大家参考,具体如下: 1、建立数据库连接:createConnection(Object)方法 该方法接受一个对象作为参数,该对象有四个常用的属性host,user,passwo
2022-06-04

MySQL数据库约束操作示例讲解

目录一、约束是什么二、约束的具体操作Not NULLUNIQUE约束的组合使用PRIMARY KEYDEFAULTFOREIGN KEY一、约束是什么约束就是,在创建表的时候,对表设置一些规则,只有满足这些规则,才可以插入数据,我们把这些
2022-11-15

Python使用SQLAlchemy操作Mysql数据库的操作示例

目录一、SQLAlchemy 介绍二、使用步骤(示例)1. 安装所需的库2. 连接到mysql数据库3. 定义模型4. 创建表5. 添加数据6. 查询数据三、结合事务使用(示例)1. 定义模型2. 初始化数据库连接和会话3. 使用事务添加用
Python使用SQLAlchemy操作Mysql数据库的操作示例
2024-08-09

MySQL实现数据插入操作的示例详解

目录一、方法分类二、具体方法三、实例(1)常规插入(2)从另一个表导入(3)插入时数据重复四、注意事项(1)不写字段名,需要填充自增ID(2)按字段名填充,可以不录入id其余注意事项使用mysql插入数据时,可以根据需求场景选择合适的插入语
2023-02-21

nodejs中操作mysql数据库示例

引言: 继前面的NodeJS的Hello,World!我们还可以看到其他强大之处,NodeJS现在社区的火热,以及大批工程师对它的支持之下,现在已经陆续的引出了大量的module出来了。内容: 下面这个所演示的是NodeJS与Mysql 的
2022-06-04

实现像php一样方便的goORM数据库操作示例详解

这篇文章主要为大家介绍了实现像php一样方便的goORM数据库操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录