s1补考机试 笔记 9206

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);
    }
  }
}

XMind - Trial Version

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值