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、结果:

2018-D的更多相关文章

  1. 2018. The Debut Album

    http://acm.timus.ru/problem.aspx?space=1&num=2018 真心爱过,怎么能彻底忘掉 题目大意: 长度为n的串,由1和2组成,连续的1不能超过a个,连续 ...

  2. Math.abs(~2018),掌握规律即可!

    Math.abs(~2018) 某前端群的入门问题长姿势了,一个简单的入门问题却引发了我的思考,深深的体会到自己在学习前端技术的同时忽略遗忘了一些计算机的基础知识. 对于 JS Math对象没什么可说 ...

  3. 肖秀荣8套卷2018pdf下载|2018肖秀荣冲刺8套卷pdf下载电子版

    肖秀荣8套卷2018pdf下载|2018肖秀荣冲刺8套卷pdf下载电子版 下载链接: https://u253469.ctfile.com/fs/253469-229815828

  4. 2018年的UX设计师薪酬预测,你能拿多少?

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具.   一个经验丰富的设计师完全可以根据地区和专业来可以预期薪酬之间的差距,其中悬殊最高可达80K. 本 ...

  5. Hello 2018, Bye 2017

    2017年过去了,过去一年经历了太多,改变了好多好多,可以说人生进入了另一个阶段,有可能是成熟吧. 回顾2017 去年换了新工作,离开了将近工作了8年的公司,不带走一丝云彩,为其任劳任怨,最后没有任何 ...

  6. New Life With 2018

    2017年转眼过去了.对自己来说.这一大年是迷茫和认知的一年.我的第一篇博客就这样记录下自己的历程吧 一:选择 从进入这一行到现在已经一年多了,2016年11月份就像所有的应届毕业生一样,都贼反感毕业 ...

  7. 2017 年终总结 & 2018 年度计划

    不立几个 Flag,都不知道怎么作死 2017 年度计划完成情况: 1.健身时间不少于350天:  未完成 中断了22天,实际运动 343天   2.至少每个月看一本书:  及格 <切尔诺贝利的 ...

  8. [总结]-2018 w1

    不想总结 2017,过去的就过去吧,不过自己在 2017 年还是收获了很多,最重要的就是赚钱.赚钱还是需要两把刷子,所以,2018 的小目标就是学习数据分析和机器学习.希望自己在这两个领域能搞点事情. ...

  9. 2018年手机应用UI设计趋势预测

    用户需求瞬息万变,而手机软件UI设计为适应变化的用户需求,也相应的发生着变化.但是,这并不意味着用户需求和UI设计趋势就是无迹可寻的.事实上,根据前几年的手机app界面设计变化的特点,尤其是2017年 ...

  10. 2017 年的 人生 hard 模式终于结束了,2018年回归初心

    2017 年的 人生 hard 模式终于结束了,2018年回归初心 2017年对于我个人来讲, 毫不夸张的说 算是近十年来除了高考那一年,最最惊心动魄的一年了,没有之一. >>>开篇 ...

随机推荐

  1. R数据分析:多项式回归与响应面分析的理解与实操

    今天给大家分享一个新的统计方法,叫做响应面分析,响应面分析是用来探究变量一致性假设的(Congruence hypotheses).本身是一个工程学方法,目前在组织行为学,管理,市场营销等等领域中使用 ...

  2. golang依赖注入工具digo

    golang依赖注入工具 digo工具地址:https://github.com/werbenhu/digo 特性 使用注释中的注解 自动代码生成 自动检测循环依赖 编译时期依赖注入 自动初始化 支持 ...

  3. 马拉车(manacher) & 回文自动机(PAM)

    补充,PAM 的 a[0]=-1,这一点我每次写都要忘记. 读了徐安矣2023年集训队论文写的,对于差分性质和习题,我会在理解清楚之后再补充.本篇博客仅讨论前两种算法. 首先,马拉车和回文自动机都是处 ...

  4. python利用subprocess执行shell命令

    subprocess以及常用的封装函数 运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序.在Python中 ...

  5. JeeCms低代码开发平台了解及认知以及遇到的问题

    1.jeecms低代码开发平台自带标签,使用的标签延续freemarker标签或基于freemarker标签自定的标签(类似自jsp自定义标签) (1)什么是freemarker标签: FreeMar ...

  6. Linux系统运维之负载均衡Tengine

    一.介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到 ...

  7. AnyCAD应用——修改指定点,线,面的坐标实现物体移动

    课题需求: 三维模型位置随实物位置改变而动态改变的功能,通过顶点位置坐标的改变,修改模型在显示中的位置. 功能验证:目前,可通过选中顶点手动输入坐标的方式,模拟验证此功能. 首先,点击"文件 ...

  8. SQL Server 数据库字符串分割函数

    SQL Server 数据库字符串分割函数,源代码如下: ALTER FUNCTION [dbo].[f_split] ( @SourceStr VARCHAR(MAX), -- 源字符串 @Spli ...

  9. 即构SDK5月迭代:新增声道选择、网络探测、智能消噪等功能,打造更优的视听体验

    即构SDK5月份的迭代更新如期而至,本月互动视频(LiveRoom).实时语音(AudioRoom)两大SDK以及录制插件(PlayRecord)均有新功能上线.新增的声道选择.变调控制.智能消噪.枚 ...

  10. Auto.Core

    Auto Core (基于AspectCore) 介绍 AutoCore是基于 .Net Standard 2.1用于简化 ASP.NET Core开发,AutoCore 在 AspectCore 的 ...