应用场景

     对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..)的更多相关文章

  1. 浅谈ListBox控件,将对象封装在listBox中,在ListBox中显示对象中某个属性,在ListBox中移除和移动信息

    大家好,俗称万事开头难,不经历风雨,怎能见彩虹.在此小编给大家带来一个自己练习的小实例,希望与大家一起分享与交流.下面进入应用场景,从SQL2008数据库取出数据,给ListBox赋值在界面并显示出来 ...

  2. Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)

    原文链接   http://www.jb51.net/article/39221.htm 这篇文章大家都在转载,估计写的有条理吧,本人稍微做一下补充 1.对查询进行优化,应尽量避免全表扫描,首先应考虑 ...

  3. 重新学习MySQL数据库6:浅谈MySQL的中事务与锁

    『浅入深出』MySQL 中事务的实现 在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇 ...

  4. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  5. 浅谈C++11中的多线程(三)

    摘要 本篇文章围绕以下几个问题展开: 进程和线程的区别 何为并发?C++中如何解决并发问题?C++中多线程的基本操作 浅谈C++11中的多线程(一) - 唯有自己强大 - 博客园 (cnblogs.c ...

  6. Eclipse连接到My sql数据库之前操作

    Eclipse连接到My sql数据库之前操作 1:首先是安装My sql数据库(为了减少你的麻烦,按照下面的连接,下载即可)百度云链接:http://pan.baidu.com/s/1mitWmbm ...

  7. 关于datagridview中checkbox列在选中行的情况下无法操作值

    这几天做项目的时候碰到了个小问题,在datagridview中实现对checkbox列的全选和反选功能.代码如下              //全选              if (dataGrid ...

  8. [Winform] DataGridView 中 DataGridViewComboBox 的可编辑

    在 DataGridView 中设置的 DataGridViewComboBox,默认是不可编辑的,即使将其列属性 DisplayStyle 设置成 ComboBox 或其他,也无法编辑: 故作如下处 ...

  9. DataGridView中实现checkbox全选的自定义控件

    在DataGridView中实现Checkbox的全选的方法就是在列头画一个checkbox, 并给其一个事件. 这个之前很多blog都有写, 这里就不多废话了,  codeproject上面有示例代 ...

随机推荐

  1. github 上的pull request总结

    自己先要fork别人的代码. 然后把代码git clone到本地.. 当自己有提交的时候, 可以在git commit之后 git push origin master 然后这份git push or ...

  2. cobbler常见问题

    http://@@http_server@@/cblr/links/CentOS-6.4-x86_64 cobbler cblr/svc 四.配置文件 cobbler有许多的配置文件,但是只有少部分基 ...

  3. Mina学习之IoBuffer

    IoBuffer是一个被MINA体系所使用的字节数组.它是ByteBuffer的替代品,Mina不使用NIO的ByteBuffer有两个原因: 1. ByteBuffer没有提供更多有用的api,如f ...

  4. 【设计模式 - 17】之中介者模式(Mediator)

    1      模式简介 中介者模式的定义: 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显式地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 中介者模式中的组成部分: 1. ...

  5. Linux下安装 TestLink常见问题解决方法

    Read/write permissions For security reason we suggest that directories tagged with [S] on following ...

  6. HDU ACM 1025 Constructing Roads In JGShining&#39;s Kingdom-&gt;二分求解LIS+O(NlogN)

    #include<iostream> using namespace std; //BFS+优先队列(打印路径) #define N 500005 int c[N]; int dp[N]; ...

  7. 经典SQL语句大全之提升

    二.提升 1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1(仅用于SQlServer)法 ...

  8. SystemTap----常用变量、宏、函数和技巧

    http://blog.csdn.net/moonvs2010/article/category/1570309

  9. linux 内核分析+使用SystemTap调试新增内核模块

    http://blog.chinaunix.net/uid/14528823/list/1.html?cid=189394

  10. SDL 实现透明悬浮窗

    最近一直想用SDL实现弹幕功能,但是一直没法实现悬浮窗和透明背景功能. 在一个老外的博客上发现了思路:EthioProgrammer: Applying transparency using win3 ...