哈Ha!
每个程序员都想发挥自己的技能,每个公司都想见到合格的专家,但是如何实现呢? 奥林匹克运动会来救援,本文将涉及其中之一。
撤退
事实证明,本文篇幅如此之多,因此所有代码和大多数图像都在剧透之下。 仍在测试文章提交格式。 如果您觉得这种格式不舒服,请写下来。 此外,所有图片都是可单击的。
关于比赛
WorldSkills是一项竞赛,其目标是寻找特定领域的专业人员。 这项竞赛起源于国际非营利协会WorldSkills International(WSI)。
参加比赛是免费的。 参加者的年龄为18至28岁,是大专院校的学生。
该大学的比赛持续5天:第一天,职位的开放和验证,然后第三天,最后一天的比赛-总结和结束。
关于能力选择和培训
在第二年的大学实习中,我偶然地了解了奥运会。 我受邀参加了“为企业开发软件解决方案”的能力。 为了解决这些问题,需要使用C#或Java的知识,并需要使用数据库,并且正如我在第一次Android奥运会中所发现的那样。 奥林匹克运动会原定于6月初开幕,而窗户已经是4月底。 在那一刻,我完全不需要任何知识。
当所有潜在的参与者都聚集起来接受培训时,我感到很惊讶。 听众中有7人,其中6人已经是三年级学生,而我是第七名。 我为什么这么惊讶? 在第三年,将为学生教授数据库课程,该课程将持续2个学期,这意味着每个人都有超过一年的实践经验。 我不想拒绝,所以我向老师询问数据库中的书籍,在互联网上找到
了 C#
课程并开始准备,并定期出现在预备班上。
奥运会开始前两周,我们获悉,本部门最多可以参加三人。 通过排位赛。 在1.5个小时内,我们必须使用ER模型在MSSQL数据库管理系统中创建数据库,从Excel文件导入数据并将其显示在应用程序中。 一言以蔽之,我被允许参加我们部门的奥运会。
现在关于比赛
比赛的第一天或“ C -1”
期待已久的发现发生在这一天。 所有参与者都聚集在礼堂,向他们介绍了WorldSkills的历史,能力,并向所有参与者介绍了专家。
仪式结束后,每个人都去了现场检查设备。 举行了“奉献仪式”,我们选择了工作并签署了安全保证书。 当时,我不知道可以在该软件中进行哪些检查,因此在抽奖之后,我立即离开去为第二天做准备。
比赛第二天或比赛开始
什么是奥运会?
对于我们的能力,在2天(其他能力为3天)中,有6个小时的时间,偶尔休息,我们被要求用C#/ Java编写一个客户端服务器应用程序并查询数据库。 更确切地说,说“我们有时间写的所有东西”,因为奥林匹克运动会的原则是“竭尽所能,尽力而为”。
据专家称,标准为几十页A4页。 标准仅在会议结束后才发布,并且仅发布给专家,因此我无法对它们发表任何评论。
让我们继续第二天的活动。 对于第一届会议,需要实施以下内容:
- 使用众所周知的ER图创建数据库
- 将数据从Excel文件导入数据库
- 为演示文稿中的布局创建4个屏幕
第二个组成另外五个布局屏幕。
简而言之,除了显示数据库中的图片和创建元素的自定义列表外,所有任务都已解决。
一些截图:

该界面允许您按姓名(甚至首字母),赛季和球队来查找球员。 通过双击未实现的图像,可以打开有关播放器的详细信息。 现在,我将通过DataGridViewImageColumn实现它。

我如何保存图像private void download_Click(object sender, EventArgs e) { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.DefaultExt = ".jpg"; saveFile.AddExtension = true;
更多屏幕截图,文本和代码
该界面是主屏幕,可让您选择“用户”或“管理员”的角色,以及观看比赛中的最佳时刻。 找不到如何将元素放置在中心。
图片上传实施 private int countImages() { sqlConnection = new SqlConnection(connectionString); using (sqlConnection) { sqlConnection.Open(); String sqlcomm = "SELECT Count(*) FROM [Pictures$]"; SqlCommand command = new SqlCommand(sqlcomm, sqlConnection); int result = (int)command.ExecuteScalar(); return result; } } private void loadPage() { sqlConnection = new SqlConnection(connectionString); using (sqlConnection) { sqlConnection.Open(); String sqlcomm = "SELECT [Img] , [CreateTime] FROM [Pictures] P" + " Order By P.CreateTime Desc" + " Offset @click Rows FETCH NEXT @svm ROWS ONLY"; SqlCommand cmd = new SqlCommand(sqlcomm, sqlConnection); cmd.Parameters.AddWithValue("@click", click); cmd.Parameters.AddWithValue("@svm", svm); dataAdapter.SelectCommand = cmd; DataSet data = new DataSet(); dataAdapter.Fill(data); imageList1.Images.Clear(); listView1.Clear(); for (int i = 0; i < data.Tables[0].Rows.Count; i++) { imageList1.Images.Add(Image.FromFile("..\\Pictures\\" + data.Tables[0].Rows[i].ItemArray[0].ToString())); } listView1.LargeImageList = imageList1; for (int i = 0; i < imageList1.Images.Count; i++) listView1.Items.Add("").ImageIndex = i; } } private void left_Click(object sender, EventArgs e) { if (click > 0) { if (!right.Enabled) { right.Enabled = true; } click -= svm; loadPage(); } else { left.Enabled = false; } } private void right_Click(object sender, EventArgs e) { if (click + svm < totalPhotos) { if (!left.Enabled) { left.Enabled = true; } click += svm; loadPage(); } else { right.Enabled = false; } }

技术管理员和比赛组织者授权的界面,使您可以记住上次输入的用户名和密码。 就我而言,我没有加密就将数据写入硬盘上的文件。
检查数据库中是否存在输入的用户名和密码 private int checkData(string jobnumber, string password) {
如果您知道验证数据的最佳方法,请在评论中写。

这就是未完成的屏幕的外观,这里我只是根据布局将组件扔到了表单上。 您能告诉我如何在C#中创建这样的自定义列表吗?

对我来说,最困难的屏幕是,因为有一些我没有准备好的图表。
比赛的第三天或与Android的意外会议
与第三天相比,前一天可以被认为是热身。 在3次会议上,另外8个屏幕将被记入屏幕。 在最后一届会议上,计划发生了变化,我们开始为Android制作简化版,而不是介绍已开发产品。 即,具有从数据库上传的图片的画廊。 现在听起来很简单,但那一刻我很高兴为会议安排了15分钟的访问互联网的时间。 在3小时内,使用ImageView形式的元素创建了GridView,将一组id图像传输到了Adapter,并重新定义了OnItemClickListener接口以创建带有图片的新Activity。
一些截图:

管理员界面,允许您查看播放器信息。 我认为,这是最没用的屏幕,因为您无法进行更改。
|

|

|
我的“完美”画廊可以在3个小时内使用互联网,并且没有Android编程技能。
更多图片,文字和代码。当您不知道如何使用数据库时用于创建画廊的代码 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(toolbar)

通过单击一个赛季(右表),将打开所有比赛的详细信息。

管理员界面,允许您更改命令列表并将数据导出到Excel。
我如何将数据导出到Excel private void exportExcel_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Excel (*.xls)|*.xls|All files (*.*)|*.*"; saveFileDialog.DefaultExt = ".xls"; if (saveFileDialog.ShowDialog() != DialogResult.OK) return; if (saveFileDialog.FileName.Equals("")) return; DataTable dt = (DataTable)dataGridView2.DataSource;
总结
12点钟举行了闭幕式,向所有参加者颁发了证书,并为获奖者颁发了带有奖状的奖牌。 在我们的能力中,我获得了第二名。 在奖励能力之间,学生们会唱歌和跳舞。
结论
在准备的一个月中,我掌握了DDL和DML SQL团队,从而大大简化了第三年数据库对的工作。 在C#和Windows Form中获得的知识还有很多需要改进的地方,除了使用数据库和用户界面外,我无需进行任何处理。
今年,我还参加了世界技能奥林匹克竞赛并获得了第一名,但是关于这一点,复杂的任务以及在下一篇文章中断开网站上的Internet的后果。