将listBox中信息显示在dataGridview中,操作datagridview后删除listBox信息和SQL数据库信息 续(浅谈listBox..)
应用场景
对datagridview控件使用了解,以及操作datagridview选中的信息删除,并且有二次确认后才删除用户信息。相应的删除listbox中用户信息,下面一起看看需要哪些准备?
开发环境
开发工具:Microsoft Visual Studio 旗舰版、SQL Server 2008.
开发环境:.NET Framework 4 Client Profile.
实现步骤
1、搭建MVC框架、建立PERSON_T表格;
首先,了解什么是MVC框架,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
我在VS项目中建立一个目录如下图:

然后,在SQL2008中FMSDB数据库中建立PERSON_T表;具体代码见下方:
USE [FMSDB]
GO /****** Object: Table [dbo].[PERSON_T] Script Date: 07/30/2013 15:47:33 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE TABLE [dbo].[PERSON_T](
[NAME] [nvarchar](50) NULL,
[AGE] [int] NULL
) ON [PRIMARY] GO
2、创建DataGridView后配置
DataGridView控件具体配置
AllowUserToAddRows改为false
AutoSizeColumnsMode改为Fill
ColumnHeadersVisible
Dock改为Bottom将datagridview放在winfrom最底端
MultiSelect 改为false 后用户只选中一行数据
RowHeadersVisible改为false第一列将会被隐藏
SelectionMode改为FullRowSelect 选中一整行数据
contextMenuStrip改为contextMenuStrip1 绑定contextStrip
3、给添加信息到datagridview中,通过循环person对象给dataGridView1赋值,具体代码见下
private void btnAddGridview_Click(object sender, EventArgs e)
{
if (dataGridView1.Rows.Count >=0)
{
dataGridView1.Rows.Clear();
for (int i = 0; i < listBoxFor.Items.Count; i++)
{ Person p = (Person)listBoxFor.Items[i];
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["Column1"].Value = p.ID;
dataGridView1.Rows[i].Cells["Column2"].Value = p.Name;
dataGridView1.Rows[i].Cells["Column3"].Value = p.Age;
dataGridView1.Rows[i].Cells["Column4"].Value = p.Position;
dataGridView1.Rows[i].Cells["Column5"].Value = p.HomeAddresss;
dataGridView1.Rows[i].Cells["Column6"].Value = p.IdentifyNumber;
}
}
} 4、给datagridview中添加右键删除选中一行用户信息操作,具体代码见下
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string name;
if (dataGridView1.SelectedRows.Count>0)
{ DialogResult comfirm = MessageBox.Show("确定删除信息...", "确定删除", MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation);
if (comfirm == DialogResult.Yes)
{ name = dataGridView1.CurrentRow.Cells["Column2"].Value.ToString(); bool result = Control.DeleteUser(name); if (result == true)
{
MessageBox.Show("成功删除用户选中信息"); }
else
{
MessageBox.Show("删除用户失败!"); }
RefreshUI(name);
}
}
} 5、作删除操作时,将listbox与datagridview中删除信息后,进行刷新操作,具体代码见下
private void RefreshUI(string name)
{
for (int i = 0; i <listBoxFor.Items.Count; i++)
{
Person p = (Person) listBoxFor.Items[i];
if (p.Name == name)
{
listBoxFor.Items.RemoveAt(i);
break;
} }
btnAddGridview_Click(null, null);
}
运行后的效果图如下
右键后图片如下
按确定后
按是按钮之后
技术点
1、取出listBox中封装的对象的属性,给datagridview赋值。
2、通过获取选中datagridview中数据,获取datagridview中name值,通过用户名删除用户信息。
3、删除用户信息时,进行界面刷新操作,新建一个刷新界面的方法。
感想
通过此实例来加强面向对象的编程,熟练运用面向对象的方法,将数据倒来倒去,最终获取想要的信息。
源码下载
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
将listBox中信息显示在dataGridview中,操作datagridview后删除listBox信息和SQL数据库信息 续(浅谈listBox..)的更多相关文章
- 浅谈ListBox控件,将对象封装在listBox中,在ListBox中显示对象中某个属性,在ListBox中移除和移动信息
大家好,俗称万事开头难,不经历风雨,怎能见彩虹.在此小编给大家带来一个自己练习的小实例,希望与大家一起分享与交流.下面进入应用场景,从SQL2008数据库取出数据,给ListBox赋值在界面并显示出来 ...
- Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)
原文链接 http://www.jb51.net/article/39221.htm 这篇文章大家都在转载,估计写的有条理吧,本人稍微做一下补充 1.对查询进行优化,应尽量避免全表扫描,首先应考虑 ...
- 重新学习MySQL数据库6:浅谈MySQL的中事务与锁
『浅入深出』MySQL 中事务的实现 在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇 ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- 浅谈C++11中的多线程(三)
摘要 本篇文章围绕以下几个问题展开: 进程和线程的区别 何为并发?C++中如何解决并发问题?C++中多线程的基本操作 浅谈C++11中的多线程(一) - 唯有自己强大 - 博客园 (cnblogs.c ...
- Eclipse连接到My sql数据库之前操作
Eclipse连接到My sql数据库之前操作 1:首先是安装My sql数据库(为了减少你的麻烦,按照下面的连接,下载即可)百度云链接:http://pan.baidu.com/s/1mitWmbm ...
- 关于datagridview中checkbox列在选中行的情况下无法操作值
这几天做项目的时候碰到了个小问题,在datagridview中实现对checkbox列的全选和反选功能.代码如下 //全选 if (dataGrid ...
- [Winform] DataGridView 中 DataGridViewComboBox 的可编辑
在 DataGridView 中设置的 DataGridViewComboBox,默认是不可编辑的,即使将其列属性 DisplayStyle 设置成 ComboBox 或其他,也无法编辑: 故作如下处 ...
- DataGridView中实现checkbox全选的自定义控件
在DataGridView中实现Checkbox的全选的方法就是在列头画一个checkbox, 并给其一个事件. 这个之前很多blog都有写, 这里就不多废话了, codeproject上面有示例代 ...
随机推荐
- Python参数中的*和**
def funct3(x, y=1, z=1, *tup): print((x, y, z) + tup) def funct4(x, y=1, z=1, **dictionary): print(x ...
- 基础排序算法之并归排序(Merge Sort)
并归排序是学习分治法 (Merge Sort) 的好例子.而且它相对于选择,插入,冒泡排序来说,算法性能有一定提升.我首先会描述要解决的问题,并给出一个并归排序的例子.之后是算法的思路以及给出伪代码. ...
- java IO复习(三)
package com.zyw.io; import java.io.File; import java.io.FilenameFilter; import java.util.ArrayList; ...
- 自己动手画一个HTML5的按钮
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- 获取windows系统信息
在应用程序中,有时需要在界面中显示计算机的硬件信息和进程信息.在.Net中提供了可以查询信息的类.Management类,在程序中添加应用后进行使用. 1 属性 类似的属性介绍可见下面: 属性介绍 根 ...
- bootstrap+jQuery.validate表单校验
谈谈表单校验 这大概是一种惯例,学习前台后台最开始接触的业务都是用户注册和登录.现在社会坚持以人为本的理念,在网站开发过程同样如此.User是我们面对较多的对象,也是较核心的对象.最开始的用户注册和登 ...
- 【JAVA - 基础】之数据加密和解密
1.Base64工具类(可逆): import java.util.HashMap; import java.util.Map; /** * Base64加解密算法 * </p> * Ba ...
- 使用PullToRefresh实现下拉刷新和上拉加载
使用PullToRefresh实现下拉刷新和上拉加载 分类: Android2013-12-20 15:51 78158人阅读 评论(91) 收藏 举报 Android下拉刷新上拉加载PullToRe ...
- 翻译Android USB HOST API
翻译Android USB HOST API 源代码地址:http://developer.android.com/guide/topics/connectivity/usb/host.html 译者 ...
- CentOS iSCSI客户端使用配置
配置步骤: 1.查看安装是否安装iSCSI驱动 rpm -qa|grep iscsi 2.查看yum安装源 yum list |grep iscsi 3.安装iscsi驱动 yum install i ...



