listview连接mysql_winform(ListView及数据库连接)
一、ListView:列表展示数据
1、视图 -
在其右上方小箭头点击将视图改为Largelcon;或右键属性在外观View将其改为Details
2、设置列头 -
在其右上方小箭头点击选择编辑列,然后添加列名;或右键属性-行为-Columns
3、添加行数据 -
在其右上方小箭头点击选择编辑项,然后将属性Text改名,即第一列,添加成员即其它列;或右键属性-行为-Items
-----------------------------------------------------------------------------
二、连接数据库:
1、建立实体类Student、Subject和数据访问类StudentData、SubjectData
2.调用StudentData类中的Select方法,将全部数据取出来
List list = new StudentData().Select();
3.将数据导入到ListView中去
foreach (Student S inlist)
{
ListViewItem li= newListViewItem();
li.Text=S.Code;
li.SubItems.Add(S.Name);
li.SubItems.Add(S.Sexstr);
li.SubItems.Add(S.Birstr);
li.SubItems.Add(S.SubjectName);
listView1.Items.Add(li);
}
4.窗体加载后自动绑定显示ListView中的数据
办法:数据绑定代码写在窗体的构造函数中
5.给用户展示最终数据(属性扩展)
6.行号
用C#变量循环++来实现
7.数据重复绑定
在绑定之前清空Items集合
listView1.Items.Clear();
8.选中一行数据
外观 - FullRowSelect:选择其中一项是否选中整行
CheckBoxes:复选框
GridLines:网格线
行为 - HideSelection :当控件没有焦点时,是否移除选定项的突出显示
HeaderStyle:列表头的样式
HoverSelection :鼠标悬浮在项上选择项,不好用,需停顿一会,通常与CheckBoxes连用
重点:
1、数据如何绑定上去
2、如何将选中的数据取出来
一个是FullRowSelect属性为True可以选择整行数据(ListView1.SelectedItems)
if (listView1.SelectedItems.Count > 1)//选择了多行
{
MessageBox.Show("修改只允许选择一行");
}else if (listView1.SelectedItems.Count == 1)
{foreach (ListViewItem li inlistView1.SelectedItems)
{if(li.Selected)
{
MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
}
}
}
else//未选中
{
MessageBox.Show("请先选中您要修改的数据");
}
另一个是CheckBoxes属性为True时,可以按照复选框来选择整行数据(ListView1.CheckedItems)
foreach (ListViewItem li inlistView1.CheckedItems)
{if(li.Checked)
{
MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
}
}
删除代码部分:
删除限制:
1、不能不选
2、多条数据如果有未删除的,提示一下,删除成功几条,未成功几条,未成功是那几条
private void button2_Click(objectsender, EventArgs e)
{int DelCount = 0; //要删除的总条数
int count = 0; //已经删除的条数
string NotDelete = "";if (listView1.CheckedItems.Count <= 0)
{
MessageBox.Show("请先选中您要删除的数据");
}else{
DelCount=listView1.CheckedItems.Count;foreach(ListViewItem li inlistView1.CheckedItems)
{if(li.Checked)
{bool ok = new StudentData().delete(li.SubItems[1].Text);if(ok)
{
count+= 1;
}else{
NotDelete+= li.SubItems[1].Text + ",";
}
}
}
NewMethod();if (count ==DelCount)
{
MessageBox.Show("删除成功");
}else{
MessageBox.Show("删除失败!要删除" + DelCount + "条数据,未删除" + (DelCount - count) + "条数据,未删除的用户名为:" + NotDelete + "");
}
}
}
添加限制:
1.编号不能为空,且编号不能在数据库中查到
2.姓名不能为空;
public partial classForm2 : Form
{
Form1 F1= null;publicForm2(Form1 f1)
{
InitializeComponent();
F1=f1;
List slist = new SubjectData().select();
Usub.DataSource=slist;
Usub.ValueMember= "SubjectCode";
Usub.DisplayMember= "SubjectName";
}bool c = false;//判断编号是否存在
private void textBox1_TextChanged(objectsender, EventArgs e)
{
Student s= new StudentData().select(UCode.Text.Trim());//调用StudentData类的查询方法
if (s == null)
{
code1.Text= "";
c= false;
}else{
code1.Text= "此编号已存在!";
c= true;
}
}bool n = false;//判断姓名是否为空
private void button1_Click(objectsender, EventArgs e)
{if(UCode.Text=="")
{
code1.Text= "编号不能为空!";
c= true;
}if(UName.Text=="")
{
name1.Text="姓名不能为空";
n=false;
}else{
n=true;
name1.Text="";
}
Student S1= newStudent();if(c==false&&n)
{
S1.Code=UCode.Text.Trim();
S1.Name=UName.Text.Trim();
S1.Sex=ra_true.Checked;
S1.Birthday=BIR.Value;
S1.SubjectCode=Usub.SelectedValue.ToString();bool bo= newStudentData().Insert(S1);if(bo)
{
MessageBox.Show("添加成功!");
F1.NewMethod();this.Close();
}else{
MessageBox.Show("添加失败!");
}
}
}
}
添加代码部分
listview连接mysql_winform(ListView及数据库连接)相关推荐
- listview连接mysql_ListView 数据库 C
通过CursorAdapter在ListView中的数据呈现 在Android中可以通过CursorAdapter直接将数据映射到ListView中,如下处理: public class Chapte ...
- java 连接池_初探数据库连接池
参考资料 数据库连接池学习笔记(一):原理介绍+常用连接池介绍 java数据库连接池实现原理 高性能数据库连接池的内幕 1. 为什么要使用连接池 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户 ...
- android listview 游标,Android Listview - 使用游标时无法选择多个项目
我有一个listview填充了使用SimpleCursorAdapter的游标数据.我想这样做,所以我可以选择多个项目,每个项目都有一个复选框,但我只能一次检查一个项目,即每次选择一个项目时,它将清除 ...
- mysql 连接池的作用,数据库连接池介绍、主要参数设置、作用
数据库连接池 dataSource 1.平时用的数据库类型?? dbcp c3p0 2.连接池需要那些配置?? 初始化连接数量initialSize 最大连接数maxActive 最大空闲连接数ma ...
- java listview用法_Java ListView.setMultiChoiceModeListener方法代码示例
import android.widget.ListView; //导入方法依赖的package包/类 @Override public void onActivityCreated(@Nullabl ...
- mysql连接池设计_数据库连接池(基于MySQL数据库)
使用JDBC是怎么保证数据库客户端和数据库服务端进行连接的? 通过代码: conn=DriverManager.getConnection(url, username, password); JDBC ...
- android listview适配器使用,android – 使用适配器在Listview中填充Listview
我有一个片段.这个片段在他的onCreateView方法上加载的视图有一个ListView(A)(填充在Adapter(A)中).但是,这个ListView(A)里面有另一个ListView(B).所 ...
- listview嵌套listview,子listview只显示一个item问题
背景: 我在做项目的时候准备用listview嵌套一个listview,但是发现,子listview只显示一条数据,于是,一猜又是计算高度出问题了. 处理办法,当然是和scrollview嵌套list ...
- ListView详解 (ListView图文混排)
ListView类 Class Overview A view that shows items in a vertically scrolling list. The items come from ...
最新文章
- PHP artisan
- dede采集 标题不完整
- Java_异常_03_ java.lang.NoClassDefFoundError: org/apache/commons/pool/KeyedObjectPoolFactory
- 光感是什么_Olay5款热门精华:淡斑小白瓶VS光感小白瓶如何选?超A瓶不太A
- [USACO13JAN] Cow Lineup (单调队列,尺取法)
- python之字符编码(二)
- GOOGLE 分布式系统关键技术论文分析
- harmonyos2.0怎么更新,harmonyOS 2.0什么时候更新 harmonyOS 2.0手机开发者Beta版更新内容[多图]...
- IMU-Allan方差分析
- 2019年PAT甲级冬季考试真题及参考答案
- sinx加expx定积分计算c语言,写一个定积分的通用函数,分别求sinx,cosx,e^x.
- SSM框架整合详细教程
- Jlink调试芯唐Cortex_M0简单步骤
- java 代码实现加锁_java内置锁实现锁住代码块方案(同一个对象或锁住整个类.class)...
- 华三模拟器的错误使用方法
- java发送邮件问题
- KVM虚拟化,云平台
- 17AHU排位赛3 D题 旋转吧!雪月花 ! (DFS序,线段树维护树上最值)
- k8s安装nfs-subdir-external-provisioner插件
- Kali Linux 触摸板支持单击