zoukankan      html  css  js  c++  java
  • 将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、删除用户信息时,进行界面刷新操作,新建一个刷新界面的方法。

    感想

    通过此实例来加强面向对象的编程,熟练运用面向对象的方法,将数据倒来倒去,最终获取想要的信息。

     源码下载
  • 相关阅读:
    PAT 甲级 1051 Pop Sequence (25 分)(模拟栈,较简单)
    PAT 甲级 1050 String Subtraction (20 分) (简单送分,getline(cin,s)的使用)
    PAT 甲级 1049 Counting Ones (30 分)(找规律,较难,想到了一点但没有深入考虑嫌麻烦)***...
    PAT 甲级 1048 Find Coins (25 分)(较简单,开个数组记录一下即可)
    PAT 甲级 1047 Student List for Course (25 分)(cout超时,string scanf printf注意点,字符串哈希反哈希)...
    PAT 甲级 1046 Shortest Distance (20 分)(前缀和,想了一会儿)
    R语言实现金融数据的时间序列分析及建模
    ES6 | class类的基本语法总结
    less使用总结
    umi 的项目中如何修改 favicon
  • 原文地址:https://www.cnblogs.com/chenghui/p/3231178.html
Copyright © 2011-2022 走看看