首页 > 其他分享 >2018-D

2018-D

时间:2023-03-24 09:22:49浏览次数:42  
标签:std INFO System Form1 2018 using null

2018-D

新建数据库 test0317,目录为考试目录,并在完成建表后备份

1、建表:

use [test0317];

create table [STD_INFO](
	[std_id] int not null primary key,
	[std_name] varchar(20) not null,
	[std_sex] varchar(2) not null check([std_sex]='男' or [std_sex]='女')
);

create table [COURSE_INFO](
	[course_id] varchar(10) not null primary key,
	[course_name] varchar(20) not null,
)

create table [SCORES](
	[std_id] int references [STD_INFO]([std_id]),
	[course_id] varchar(10) references [COURSE_INFO]([course_id]),
	[score] int not null check([score]>=0 and [score]<=100)
)

insert into [STD_INFO] values(201833,'王二','男');
insert into [STD_INFO] values(201824,'张三','女');
update [STD_INFO] set std_id=201834 where std_name='张三';

insert into [COURSE_INFO] values('001','操作系统');
insert into [COURSE_INFO] values('002','嵌入式系统');

insert into [SCORES] values(201833,'001',70);
insert into [SCORES] values(201834,'001',90);
insert into [SCORES] values(201834,'002',20);

select * from [STD_INFO];
select * from [COURSE_INFO];
select * from [SCORES];

--根据姓名查询成绩
select [STD_INFO].[std_name] from [STD_INFO];
select [COURSE_INFO].[course_name],[SCORES].[score] from [STD_INFO],[COURSE_INFO],[SCORES] where [STD_INFO].[std_name]='张三' and [STD_INFO].[std_id]=[SCORES].[std_id] and [COURSE_INFO].[course_id]=[SCORES].[course_id];

--根据课程名查询成绩
select [COURSE_INFO].[course_name] from [COURSE_INFO];
select [STD_INFO].[std_id],[STD_INFO].[std_name],[SCORES].[score] from [STD_INFO],[COURSE_INFO],[SCORES] where [COURSE_INFO].[course_name]='操作系统' and [COURSE_INFO].[course_id]=[SCORES].[course_id] and [SCORES].[std_id]=[STD_INFO].[std_id];

2、解决方案:

解决方案结构:

Form1.cs[设计]

Form1 属性:

​ MaximizeBox = False

​ MinimizeBox = False

​ Text = 2018机试

​ 事件:

​ Load = Form1_Load

listView1 属性:

​ FullRowSelect = True

​ GridLine = True

​ View = Details

​ MultiSelect = False

comboBox1 / comboBox2 属性:

​ DropDownStyle = DropDownList

button1 / button2 事件:button1_Click / button2_Click

DB.cs:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;

namespace test0317
{
    internal class DB : IDisposable
    {
        private SqlConnection sqlConnection;
        public DB()
        {
            sqlConnection = new SqlConnection(@"server=.;database=test0317;Trusted_Connection=SSPI");
            sqlConnection.Open();
        }

        public DataTable GetBySql(string sql)
        {
            DataTable dt = new DataTable();
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(new SqlCommand(sql,sqlConnection));
            sqlDataAdapter.Fill(dt);
            return dt;
        }

        public void Dispose()
        {
            sqlConnection.Close();
        }
    }
}

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace test0317
{
    public partial class Form1 : Form
    {
        DB db;
        public Form1()
        {
            InitializeComponent();
            db= new DB();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = db.GetBySql(@"select [STD_INFO].[std_name] from [STD_INFO];");
            for(int i=0; i<dt.Rows.Count; i++)
            {
                for(int j=0;j<dt.Columns.Count; j++)
                {
                    comboBox1.Items.Add(dt.Rows[i][j].ToString());
                }
            }
            comboBox1.SelectedIndex = 0;

            dt = db.GetBySql(@"select [COURSE_INFO].[course_name] from [COURSE_INFO];");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    comboBox2.Items.Add(dt.Rows[i][j].ToString());
                }
            }
            comboBox2.SelectedIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            listView1.Clear();
            listView1.Columns.Add("课程名", listView1.Width / 2 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("成绩", listView1.Width / 2 - 1, HorizontalAlignment.Left);
            DataTable dt = db.GetBySql(@"select [COURSE_INFO].[course_name],[SCORES].[score] from [STD_INFO],[COURSE_INFO],[SCORES] where [STD_INFO].[std_name]='"+comboBox1.Text+"'and [STD_INFO].[std_id]=[SCORES].[std_id] and [COURSE_INFO].[course_id]=[SCORES].[course_id]");
            listView1.BeginUpdate();
            for(int i=0; i < dt.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem();
                for(int j=0; j < dt.Columns.Count;j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = dt.Rows[i][j].ToString();
                    }
                    else
                    {
                        listViewItem.SubItems.Add(dt.Rows[i][j].ToString());
                    }
                }
                listView1.Items.Add(listViewItem);
            }
            listView1.EndUpdate();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            listView1.Clear();
            listView1.Columns.Add("学号", listView1.Width / 3 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("学生名", listView1.Width / 3 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("成绩", listView1.Width / 3 - 1, HorizontalAlignment.Left);
            DataTable dt = db.GetBySql(@"select [STD_INFO].[std_id],[STD_INFO].[std_name],[SCORES].[score] from [STD_INFO],[COURSE_INFO],[SCORES] where [COURSE_INFO].[course_name]='" + comboBox2.Text + "' and [COURSE_INFO].[course_id]=[SCORES].[course_id] and [SCORES].[std_id]=[STD_INFO].[std_id];");
            listView1.BeginUpdate();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem();
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = dt.Rows[i][j].ToString();
                    }
                    else
                    {
                        listViewItem.SubItems.Add(dt.Rows[i][j].ToString());
                    }
                }
                listView1.Items.Add(listViewItem);
            }
            listView1.EndUpdate();
        }
    }
}

3、结果:

标签:std,INFO,System,Form1,2018,using,null
From: https://www.cnblogs.com/benbenlzw/p/17244879.html

相关文章

  • P4221 [WC2018]州区划分 题解
    题目链接题目描述给出\(n\)个城市,\(m\)条边,一个划分合法当且仅当所有划分中的点集和集合中点之间存在的边集所构成的图不构成欧拉回路且联通。定义一个点集的值为......
  • 【技巧】Windows Server 2012/2016/2018桌面显示我的电脑图标
    从WindowsServer2012开始,微软取消了服务器桌面个性化设置功能,WindowsServer2012/2016用户桌面上默认只有一个回收站的图标,这让习惯于使用我的电脑图标功能的用户很不适......
  • esxi主机安装完毕后漏洞:CVE-2018-3646解决方法
    [解决方案]由于此漏洞属于芯片级漏洞,更新固件会造成较大的性能损失,在私有云环境下,此漏洞的影响范围可控,我们可以选择禁用此提示,暂缓漏洞的修复。esxi主机安装完毕后漏洞:C......
  • 【洛谷】P4590 [TJOI2018]游园会(dp套dp)
    原题链接题意对于一个长度为\(n\)的仅由\(N,O,I\)组成且不包含字串\(NOI\)的字符串\(S\),其与一个给定的长度为\(K\)的字符串的最长公共子序列为\(LCS\)。求出......
  • Origin 2018【科学数据分析】中文破解版安装包下载及图文安装教程​
    Origin是由OriginLab公司全新开发的一款科学绘图、数据分析软件,能够为用户提供多样的数据统计、数据处理、数据报告等功能,是全球商业行业、学术界和政府实验室超过50万科......
  • CAXA工艺图表 2018 中文破解版安装包下载及图文安装教程​
    CAXA工艺图表打造了全新的工艺编制软件平台,具有多文档、多环境的特点,使用户在编制工艺文档、或绘制工装图纸时更加流畅、自如,而且依据中国机械设计的国家标准和使用习惯,提供......
  • 「题解」洛谷 P5644 [PKUWC2018]猎人杀
    题意:初始有\(n\)个人,每个人的权值是\(w_i\),假设这一轮剩余还没嘎掉的人总权值是\(s\),那么这一轮它有\(\frac{w_i}{s}\)的概率嘎掉。求\(1\)活到最后的概率是多少。......
  • [护网杯 2018]easy_tornado_wp(finish)
    buuctfeasy_tornado解题思路打开题目链接可以看到web里有3条链接分别是分析/flag.txt里的可以看到我们想要的存在”flagin/fllllllllllllag“fllllllllllllag这......
  • idea2018 下载github项目
    获取github代码地址:idea下载项目:File->new->projectversioncontrol->git  ......
  • luogu P4566 [CTSC2018]青蕈领主
    题面传送门最后这个转化非常牛逼啊!首先我们可以证明:一个合法的序列中,这样的极长连续区间不会相交。Proof:如果相交了,说明相交的区间也是一段连续区间,而每个区间不相交的......