s1补考机试

listview演练

数据表情况

登陆数据库


服务器名称

.

目标数据库

数据表情况

数据库连接问题

绘制listview控件

新建窗体应用

绘制listview控件

设置lv显示模式为详情模式


设置显示模式

设置lv控件的列

假设只显示三个列

姓名,国家,攻击力

当前界面

配置DbHelper

引入dbHelper工具文件

下载地址

https://cloud.189.cn/t/r636ziI7Fzym(访问码:i093)

把文件粘贴进来

修改dbHelper的命名空间

namespace 控件填入数据的演练


至此为止,DbHelper的命名空间准备就完毕了

DbHelper连接字符串的配置

连接哪个数据库,就获取哪个的连接字符串

连接成功的状态


有小电源

获取连接字符串

选中目标数据库,右下脚找连接字符串

复制它

Data Source=.;Initial Catalog=dbok;Integrated Security=True

把它粘在DbHelper 的对应位置

查询显示所有数据

双击窗体进入加载事件

在这里编写加载方法

为了让方法的通用性更强

写一个带参方法

参数是sql语句

先验证sql语句

带走sql语句


继续写方法

先写一个方法的调用

再写方法的定义

再来定义这个方法

完善加载方法 先明确编写的逻辑

获取帮手

拿一个数据朗读者

导入命名空间

遍历数据郎读者 获取需要的数据

当前的sql语句的查询结果是这个样子的

需要哪一列数据,就提供列名称来获取即可

有一条数据就要创建一个lv的行出来

操作逻辑

效果

代码

效果

代码

效果


代码

只要我们准备的列够多

有几个子项就可以添加几个子项

小结

》步骤一

》步骤二

    // 加载数据到lv中private void loadToLv(String sql) { // 获取帮手DbHelper helper = new DbHelper();// 帮手帮助我们拿一个数据朗读者SqlDataReader reader = helper.getReader(sql);// 数据朗读者一个一个的提供数据while (reader.Read()) { // 提取需要的数据// 通过  朗读者[列名称] 可以获取数据的// 姓名String name = reader["name"].ToString();// 国家String country = reader["country"].ToString();// 攻击力String attack = reader["attack"].ToString();// 每提供一个数据,我们就要给lv添加一行// 新建一个项ListViewItem item = new ListViewItem(name);// 给项添加子项item.SubItems.Add(country);item.SubItems.Add(attack);// 把项添加到lv控件中( lv控件.项集合.Add(项对象) )listView1.Items.Add(item);}}

》最终结果

搜索数据

准备界面

来一个文本框

来一个按钮

搜索的逻辑

获取搜索关键词

构建sql语句

在sqlserver软件中先明确好可用的sql语句

把sql语句贴到代码中

把sql语句改活

利用sql语句重新查询并绑定数据


loadToLv这个方法是我们前一个步骤自己写的方法

这个不是系统方法

测试效果


存在bug的

bug原因分析

我们一直在做加法

解决办法

如果查询到了结果

要往控件中填入的话

先清空一下lv控件

然后再填

解决代码

找到填入数据的方法

在遍历填入数据的操作前

先清空listview的全部数据

再测试一下


正常的搜索是会有数据的

不过

当搜索词是一串空格时,没有结果了

这样不太好

我们应该去空格,再查询

解决bug

期望的效果

完整代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;namespace 控件填入数据的演练
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){// 查询所有数据的sql语句String sql = "select * from sanguo";// 加载数据到lv中loadToLv(sql);}// 加载数据到lv中private void loadToLv(String sql) { // 获取帮手DbHelper helper = new DbHelper();// 帮手帮助我们拿一个数据朗读者SqlDataReader reader = helper.getReader(sql);// 数据朗读者一个一个的提供数据// 先清空再填入listView1.Items.Clear();while (reader.Read()) { // 提取需要的数据// 通过  朗读者[列名称] 可以获取数据的// 姓名String name = reader["name"].ToString();// 国家String country = reader["country"].ToString();// 攻击力String attack = reader["attack"].ToString();// 每提供一个数据,我们就要给lv添加一行// 新建一个项ListViewItem item = new ListViewItem(name);// 给项添加子项item.SubItems.Add(country);item.SubItems.Add(attack);// 把项添加到lv控件中( lv控件.项集合.Add(项对象) )listView1.Items.Add(item);}}private void button1_Click(object sender, EventArgs e){// 拿到搜索关键词,去空格String key = textBox1.Text.Trim();// 利用关键词构建sql搜索语句// select * from sanguo where name like '%张%'String temp = "select * from sanguo where name like '%{0}%'";String sql = String.Format(temp, key);// 利用sql语句绑定数据给控件loadToLv(sql);}}
}

datagridview演练

设置datagridView界面

绘制datagridView控件

找到控件

效果

明确需要填入的数据

从数据库中明确

我们需要三国表中的

姓名,攻击力,国家,这三列数据

给datagridview控件设置列



效果

设置dgv的样式

》让列铺满

效果

》去掉首列空列


》去掉自动添加的行

目的是去掉启动时的空行

只能用代码操作

效果

dgv展示数据

窗体加载的时候 通过一个函数来给控件绑定数据

为了让我们的代码更加灵活

还是写一个带参数的函数


优化sql语句


拿到语句

select name,attack,country from sanguo;

实现了绑定方法的调用

编写绑定方法的细节

》效果

关闭自动生成列

效果,自动生成的列就没有了

给dgv控件的列指明显示的数据

当所有的列都对应好了数据表中的列以后

结果如下

dgv搜索数据

搜索数据 界面准备

来一个搜索框

来一个按钮

搜索按钮的事件

连表查询

连表查询

连表查询格式

查出所有的列

select * from 表1 inner join 表2 on 表1.列名 = 表2.列名

筛出自己想要的列

select 表1.列名,表1.列名n,表2.列名,表2.列名n from 表1 inner join 表2 on 表1.列名 = 表2.列名

筛出想要的列同时起别名

select 表1.列名 as 别名1,表1.列名n as 别名,表2.列名,表2.列名n from 表1 inner join 表2 on 表1.列名 = 表2.列名

例子

select student.id,student.name as sname,teacher.name as tname from student inner join teacher on teacher.id = student.tid

查询结果

XMind - Trial Version

s1机试补考补习 9206相关推荐

  1. s1补考机试 笔记 9206

    s1补考机试 listview演练 数据表情况 登陆数据库 服务器名称 . 目标数据库 数据表情况 绘制listview控件 新建窗体应用 绘制listview控件 设置lv显示模式为详情模式 设置显 ...

  2. 机试指南第七章-动态规划-笔记及背包问题

    第七章     动态规划 一.递归求解: 递归问题的关键是解决初始值和递推公式,从而将复杂问题分解为简单问题直至初始值对应的极简问题,从而得到答案. 套路:初始值+递归公式. Trick:将求出的值存 ...

  3. c语言用字符方式拚一个时钟,2012年3月份全国计算机等级考试二级c语言题库(机试) (1)...

    2012年3月份全国计算机等级考试二级c语言题库(机试) (1) 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不 ...

  4. 华为机试-字符串子序列II

    华为机试-字符串子序列II 1.思路 2.代码 1.思路 理解这个抽象题目,其实就是一个求最长子序列的题目.求最长子序列我们一般使用动态规划来做. 与以往不同的是,我们需要倒序求最长子序列,这样可以求 ...

  5. 【保研复习】C语言保研机试笔记

    基于王道机试指南的保研机试笔记(C语言翻译版) 文章目录 技巧 C语言哈希表用法 C语言string.h函数 C语言math.h函数 数据结构 链表 基本实现 反转链表 栈 基本实现 括号匹配 表达式 ...

  6. 华为机试第二题420 按照路径替换二叉树

    华为机试第二题 按照路径替换二叉树 文章目录 一.题目回忆 输入 样例一 二.Java代码 三.注意 一.题目回忆 将一颗子二叉树按照路径替换到另一棵根二 叉树中, 得到一颗新的二叉 树.替换动作满足 ...

  7. 华为机试(扑克牌大小3.3)

    华为机试(扑克牌大小3.3) 题目 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写J ...

  8. 北邮考研复试机试准备过程(已上岸)

    纯自用请勿转载,用来给自己最后复习和捋思路用的,主要参考牛客网+王道机试指南,C.C++混用.考研人太久不写代码了-什么都不记得了,从头开始过一遍吧. 黑色代码段是要记住的重点函数/方法.每天下午做几 ...

  9. 计算机考研机试指南(八)——数学问题

    机试指南 cha4 数学问题 % 1 #include <iostream> 2 #include <stdio.h> 3 #include <stdlib.h> ...

最新文章

  1. 冬奥冠军武大靖也有减重烦恼,还为此发了篇论文
  2. UVA 11383 Golden Tiger Claw 金虎爪(KM算法)
  3. 【转】Memcached管理与监控工具----MemAdmin
  4. docker 删除image_如何用两个小时入门 Docker?
  5. python反射机制
  6. Python 类的几个内置装饰器—— Staticmethod Classmethod Property
  7. 启动报错:Error creating bean with name ‘XXX’ defined in...
  8. 谷歌插件文档 镜像_最好的Google文档插件
  9. 面试中的SQL分析二
  10. html 图片展示 3d,利用CSS3制作简单的3d半透明立方体图片展示
  11. HTTP性能极限优化
  12. HDU - 2520 我是菜鸟,我怕谁
  13. 技术博客哪家强:CSDN、博客园、简书、开源中国OSChina等博客的详细分析比较
  14. stm32独立看门狗
  15. 消防工程师与消防员有什么区别?
  16. Oracle数据库启停
  17. Virus.Win32.Ramnit.X,Virus.Win32.Ramnit.a病毒
  18. jxls导出Excel表格
  19. 基于aws cloudfront的前端应用灰度方案
  20. Android-Mac电脑如何进行APK反编译

热门文章

  1. opencv_modules.hpp 头文件
  2. Python中copy,deepcopy,浅拷贝(“=”)和深拷贝(“copy.deepcopy()”)
  3. 不同维度的矩阵相乘的时间复杂度
  4. 合并数组内的对象的数字
  5. vim 配置_「go」 配置vim用于go 开发
  6. Emlog简约好看的博客主题末遇
  7. mysql不能写重复键_mysql主键重复,不抱错,只更新的骚操作 (如果没有插入,如果有更新)...
  8. vite新建vue3项目采坑,官网流程之路,vite+vue3+elementpuls
  9. 特别好看的一个多接口api的图床源码
  10. 多用途响应式ppt资源下载平台-html模板