winform(ListView及数据库连接)
一、ListView:列表展示数据
1、视图 -
在其右上方小箭头点击将视图改为Largelcon;或右键属性在外观View将其改为Details
2、设置列头 -
在其右上方小箭头点击选择编辑列,然后添加列名;或右键属性-行为-Columns
3、添加行数据 -
在其右上方小箭头点击选择编辑项,然后将属性Text改名,即第一列,添加成员即其它列;或右键属性-行为-Items
-----------------------------------------------------------------------------
二、连接数据库:
1、建立实体类Student、Subject和数据访问类StudentData、SubjectData
2.调用StudentData类中的Select方法,将全部数据取出来
List<Student> list = new StudentData().Select();
3.将数据导入到ListView中去
foreach (Student S in list)
{
ListViewItem li = new ListViewItem(); 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 > )//选择了多行
{
MessageBox.Show("修改只允许选择一行");
}
else if (listView1.SelectedItems.Count == )
{
foreach (ListViewItem li in listView1.SelectedItems)
{
if (li.Selected)
{
MessageBox.Show(li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text);
}
}
}
else//未选中
{
MessageBox.Show("请先选中您要修改的数据");
}
另一个是CheckBoxes属性为True时,可以按照复选框来选择整行数据(ListView1.CheckedItems)
foreach (ListViewItem li in listView1.CheckedItems)
{
if (li.Checked)
{
MessageBox.Show(li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text + li.SubItems[].Text);
}
}
删除代码部分:
删除限制:
1、不能不选
2、多条数据如果有未删除的,提示一下,删除成功几条,未成功几条,未成功是那几条
private void button2_Click(object sender, EventArgs e)
{
int DelCount = ; //要删除的总条数
int count = ; //已经删除的条数
string NotDelete = ""; if (listView1.CheckedItems.Count <= )
{
MessageBox.Show("请先选中您要删除的数据");
}
else
{
DelCount = listView1.CheckedItems.Count; foreach(ListViewItem li in listView1.CheckedItems)
{
if(li.Checked)
{
bool ok = new StudentData().delete(li.SubItems[].Text);
if (ok)
{
count += ;
}
else
{
NotDelete += li.SubItems[].Text + ",";
} }
}
NewMethod();
if (count == DelCount)
{
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("删除失败!要删除" + DelCount + "条数据,未删除" + (DelCount - count) + "条数据,未删除的用户名为:" + NotDelete + "");
}
}
}
添加限制:
1.编号不能为空,且编号不能在数据库中查到
2.姓名不能为空;
public partial class Form2 : Form
{
Form1 F1 = null;
public Form2(Form1 f1)
{
InitializeComponent();
F1 = f1;
List<Subject> slist = new SubjectData().select();
Usub.DataSource = slist;
Usub.ValueMember = "SubjectCode";
Usub.DisplayMember = "SubjectName";
}
bool c = false;//判断编号是否存在
private void textBox1_TextChanged(object sender, 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(object sender, EventArgs e)
{
if(UCode.Text=="")
{
code1.Text = "编号不能为空!";
c = true;
} if(UName.Text=="")
{
name1.Text="姓名不能为空";
n=false;
}
else
{
n=true;
name1.Text="";
}
Student S1 = new Student();
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= new StudentData().Insert(S1);
if (bo)
{
MessageBox.Show("添加成功!");
F1.NewMethod();
this.Close();
}
else
{
MessageBox.Show("添加失败!");
}
}
}
} 添加代码部分
winform(ListView及数据库连接)的更多相关文章
- winform ListView应用之分组、重绘图标、网格线 (c# .net winform)
最近在winform应用中需要用到可分组的数据列表功能,DataGridView默认没有提供分组的功能,而OutlookGrid(http://www.codeproject.com/KB/grid/ ...
- [转]C# Winform ListView使用
以下内容均来自网上,个人收集整理,具体出处也难确认了,就没写出处了: 一.基本使用: listView.View = View.Details;//设置视图 listView.SmallImageLi ...
- C# Winform ListView使用
以下内容均来自网上,个人收集整理,具体出处也难确认了,就没写出处了: 一.基本使用: listView.View = View.Details;//设置视图 listView.SmallImageLi ...
- 陈年佳酿之 - Winform ListView 控件 double click 事件中获取选中的row与column
背景 最近收到了一个关于以前项目的维护请求,那时的楼主还是刚刚工作的小青年~~~ 项目之前使用的是.net/winform.今天重新打开代码,看着之前在FrameWork2.0下面的代码, 满满的回忆 ...
- winform listview用法
资源收集 C#winform中ListView的使用 C# WinForm开发系列 - ListBox/ListView/Panel(介绍了一些listview的高级用法) 直接上代码 示例一: th ...
- WinForm ListView不分页加载大量数据
WinForm的ListView在加载大量数据时会出现闪烁的问题,同时数据加载很慢.如果你的列表中有超过千条的数据且不做特殊处理还是用普通的ListView.Items.Add(),估计你的用户得抱怨 ...
- Winform listview控件、 容器控件
1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置行和列之间是否显示网格 ...
- winform listview控件、容器控件
ListVies控件主要用于展示数据 常用属性: FullRowSelect:设置是否行选择模式.(默认为false) (开启之后一下选中一行数据) GridLines:设置行和列之间是否显示网格线. ...
- C# winform窗体设计-数据库连接
本篇文章内容主要是小编上课所学的总结 最近小编在学习C#中的数据库管理方面,主要学习到数据库的增删改查,查询学生平均分,最低分,最高分等操作 [本篇文章中小编主要讲解数据库的连接] 在C#中使用数据库 ...
随机推荐
- 几种在Linux下查询外网IP的办法
原文地址:http://my.oschina.net/epstar/blog/513186 Curl 纯文本格式输出: curl icanhazip.com curl ifconfig.me curl ...
- CSS HACK 及常见问题
一.CSS常用hack 1.方式一:条件注释法 这种方式是IE浏览器专有的Hack方式,微软官方推荐使用的hack方式.举例如下 只在IE下生效 <!--[if IE]> 这段文字只在IE ...
- 【转】Oracle RAC 环境下的连接管理
文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...
- Using HiveServer2 - Authentication
To configure Hive for use with HiveServer2, include the following configuration properties in the .. ...
- 我所研究过的 ASP.NET MVC 或者 .NET 或者 ORM 或者框架的开源项目
ASP.NET MVC 的开源项目有很多,这里列出我所研究过的: SocialGoal v1.0.0 prodinner nopCommerce SmartStore.NET 由于今天才做收集工作,可 ...
- Visual Studio 2013 Preview对C++11的支持
为期3天的微软Build 2013大会结束了,作为微软一年一度的开发者大会,微软也做足了功夫:很多产品(包括Windows 8.1和Visual Studio 2013 Preview)发布,chan ...
- Windows7下的Java运行环境搭建过程图解
第一步:下载JDK 地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,(由于Sun于20 ...
- 基于selenium的pyse自动化测试框架
WebUI automation testing framework based on Selenium 介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比seleni ...
- Mysql学习笔记(四)字符串函数
PS:终于看完了字符串函数,心都快碎了...涉及的函数真是太多了...感觉这里的字符串函数和JAVA里的基本都差不多了...基本上算是掌握了,但是想全记住那是不太可能的... 学习内容: 字符串函数的 ...
- 禁用mac Command w
事情是这样的:历经各种调查,终于定位到了一个bug,正在我准确Command + 数字 切换下iterm2的窗口时,让我懵逼的事情发生了,我们终端不见了,对不见了.心里万马奔腾啊.什么鬼?原来自己误按 ...