说明(2017-5-27 16:34:39):

1. 注意事项:

(0)设计窗体,添加一个dgv,添加5个列名,修改名字和绑定数据。

(1)添加引用,system.data.sqlclient

(2)新建student类,添加id,name,chinese,math,flag字段

(3)窗体代码:loadStudent(0)调用方法,加载学生信息,参数为0,就是flag的值,0未删,1删除

(4)新建loadStudent方法,传一个参数p。

(5)数据库操作:连接字符串,using三个方法(sqlconnection,sqlcommand,sqldatareader),在sqldatareader里,实例化一个student类st,每读取一行数据,存入st,外面新建一个list集合,类型是student,把每个st存入list集合。

(6)dgv(datagridview缩写),dgv.datasource=list,把list绑定到dgv表格中。

(7)还有一些其他禁止自动生成列,禁止默认选中,点击选中一行一些破事,无关紧要,主要是上面的,将数据库数据显示出来。

2. 运行结果:

数据库:

myclass

代码:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient; namespace _08餐桌大项目
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 学生类
/// </summary>
public class Student
{
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private string _chinese;
public string Chinese
{
get { return _chinese; }
set { _chinese = value; }
}
private string _math;
public string Math
{
get { return _math; }
set { _math = value; }
}
private int _flag;
public int Flag
{
get { return _flag; }
set { _flag = value; }
}
}
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
loadStudent();
}
/// <summary>
/// 加载学生信息
/// </summary>
/// <param name="p">flag=0未删除,flag=1删除</param>
private void loadStudent(int p)
{
//集合,把reader到的数据添加到student各字段
List<Student> list = new List<Student>();
string str = "Data Source=.; Initial Catalog=jjwdb; Integrated Security=True";
using (SqlConnection con = new SqlConnection(str))
{
con.Open();
string sql = "select id,name,chinese,math,flag from myclass where flag=" + p;
//string sql = "insert into myclass(name,chinese,math) values('zhao','77','77')";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
//Console.WriteLine(123);
while (reader.Read())
{
Student st = new Student();
st.Id = Convert.ToInt32(reader["id"]);
st.Name = Convert.ToString(reader["name"]);
st.Chinese = Convert.ToString(reader["chinese"]);
st.Math = Convert.ToString(reader["math"]);
st.Flag = Convert.ToInt32(reader["flag"]);
list.Add(st);
}
}
}
} }
dgv.AutoGenerateColumns = false;//禁止自动生成列
dgv.DataSource = list;//绑定数据
dgv.SelectedRows[].Selected = false;//禁止被选中,这一行代码要放在绑定数据后面,不然会报错!;属性里selection mode改为full row select,一次选一行
}
}
}

C#学习笔记(5)——大项目查找的更多相关文章

  1. Scrapy:学习笔记(2)——Scrapy项目

    Scrapy:学习笔记(2)——Scrapy项目 1.创建项目 创建一个Scrapy项目,并将其命名为“demo” scrapy startproject demo cd demo 稍等片刻后,Scr ...

  2. golang学习笔记6 beego项目路由设置

    golang学习笔记5 beego项目路由设置 前面我们已经创建了 beego 项目,而且我们也看到它已经运行起来了,那么是如何运行起来的呢?让我们从入口文件先分析起来吧: package main ...

  3. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver

    1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...

  4. IDEA 学习笔记之 Java项目开发深入学习(2)

    Java项目开发深入学习(2): 查找变量被用到的地方 编译当前文件 增加变量watch 注意:我使用了keymap (eclipse模板),所以很多快捷键和eclipse一样. F5单步调试进入函数 ...

  5. 学习笔记:flutter项目搭建(mac版)

    什么是flutter Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被越来越多的 ...

  6. 算法图解学习笔记01:二分查找&大O表示法

    二分查找 二分查找又称折半查找,其输入的必须是有序的元素列表.二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止:如果x<a[ ...

  7. koa2学习笔记01 - 创建项目 —— koa生成器一键生成koa项目

    前言 从17年开始尝试学习搭建个人网站开始,就开始学习摸索node了,至今差不多快两年了. 说起来现在都9102年了,所以最近打算整体设计重构一下网站,索性node后台也重写一遍. 重温一下node, ...

  8. Android Studio安卓学习笔记(二)Android项目结构

    上一篇代码,我们学习了Android的功能以及如何用Android Studio开发第一个安卓程序.下面就要介绍Android项目结构.为日后学习打基础. 一:Android项目结构 打开MyFris ...

  9. 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)

    1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...

随机推荐

  1. Android文件的读写

    Android的文件读写与JavaSE的文件读写相同,都是使用IO流.而且Android使用的正是JavaSE的IO流,下面我们通过一个练习来学习Android的文件读写. 1.创建一个Android ...

  2. jQuery.ajax发送image请求格式

    1\请求端 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head run ...

  3. tomcat默认密码,admin,manager密码需要自己设置,tomcat-users.xml

    <?xml   version='1.0'   encoding='utf-8'?> <tomcat-users> <role   rolename="tomc ...

  4. Android App解决卡顿慢之内存抖动及内存泄漏(发现和定位)

    内存抖动是指在短时间内有大量的对象被创建或者被回收的现象,内存抖动出现原因主要是频繁(很重要)在循环里创建对象(导致大量对象在短时间内被创建,由于新对象是要占用内存空间的而且是频繁,如果一次或者两次在 ...

  5. linux文件系统 - 初始化(三)

    执行init程序 一.目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs.proc文件系统,加载了磁盘驱动程序驱动程序等.接下来,内核跳转到用户空间的in ...

  6. 迁移TFS,批量将文档导入SharePoint 2013 文档库

    一.需求分析 公司需要将存在于旧系统(TFS)所有的文档迁移至新系统(SharePoint 2013).现已经将50G以上的文档拷贝到SharePoint 2013 Server上.这些文档是一些不规 ...

  7. Maven .m2\repository\jdk\tools\1.7 missing

    在pom.xml文件中加入: <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.too ...

  8. nginx 有关防盗链的设置

    http://blog.csdn.net/longjef/article/details/53284108 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链 ...

  9. 逆向project实战--Acid burn

    0x00 序言 这是第二次破解 crackme 小程序,感觉明显比第一次熟练.破解过程非常顺利,差点儿是分分钟就能够找到正确的 serial,可是我们的目标是破解计算过程.以下将具体介绍. 0x01 ...

  10. tengine 的优化

    查服务器CPU的核数 : [root@c01 conf]# grep processor /proc/cpuinfo |wc -l 4 [root@c01 conf]# grep -c process ...