`
coconut_zhang
  • 浏览: 532321 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

listBox数据库操作

阅读更多

SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=zhy");
con.Open();
SqlCommand com = new SqlCommand("select * from student",con);
SqlDataReader dr = com.ExecuteReader();
this.listBox1.Items.Clear();
while (dr.Read())
{
// this.listBox1.Items.Add(dr[0].ToString());
this.listBox1.Items.Add(dr[1].ToString());//加入資料
 //   this.listBox1.Items.Add(dr[2].ToString());

 }
 dr.Close();
 con.Close();
 //this.listBox2.Items.Add(listBox1.Items.Count.ToString());

 //this.listBox2.Items.Add(this.listBox1.SelectedItem.ToString());將listBox1選種的數據加入到listBox2
 //this.listBox1.Items.Remove(this.listBox1.SelectedItem);移除listBox1中所選的項目

 

 

很少写WinForm程序第一次使用ListBox控件就遇到了比较恶心的问题。因为我不想手动绑定ListBox中的Item就使用了DataSource,但是当我进行一些添加、删除操作时就报了这个错“设置DataSource属性后无法修改项集合”。实在太恶心了,不知道设计ListBox的人是怎么想的给了DataSource属性却不能随便更改,而我要实现在一个ListBox中选中几项然后放到另一个ListBox中的功能,不能用DataSource的话太麻烦了。上博客园查了下没有找到解决办法,只能自己动手丰衣足食了。因为有人说引起这个的原因是“在winForm程序中这样绑定之后是直接和数据源DataTable相关,改动项会对DataTable造成影响”既然这样那解决方法就是如果要对Items做更改就从新弄个DataSource重新绑定,试验后效果不错。我把操作两个ListBox之间互相移动item的操作封装到一个类里,代码如下:

    说明一下,这里必须用泛型来指明所绑定的对象类型,一开始没想用泛型的,可是转移几次以后就不能按照DisplayerMember属性设置的字段来显示了比较奇怪。希望对遇到相同问题的朋友有帮助。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;

namespace BLL.App_Code
...{
//用于统一处理两个List类型控件之间互相转移Items
public static class LstCtrlMove_Mgr<T>
...{
//从一个ListBox中删除Items
public static void RemoveItems(ListBox lstBox, IEnumerable items)
...{
List<T> lst = new List<T>();
lst.AddRange((List<T>)lstBox.DataSource);
lst.RemoveAll(delegate(T item1)
...{
foreach (T item2 in items)
...{
if (item1.Equals(item2))
return true;
}
return false;
});
lstBox.DataSource = lst;
}
//向一个ListBox中添加Items
public static void AddItems(ListBox lstBox, IEnumerable items)
...{
List<T> lst = new List<T>();
if (lstBox.DataSource != null)
lst.AddRange((List<T>)lstBox.DataSource);
foreach (T item in items)
...{
lst.Add(item);
}
lstBox.DataSource = lst;
}
//将ListBox1的选定项转移到ListBox2中,并从ListBox1中去除
public static void Move(ListBox lstBox1, ListBox lstBox2)
...{
if (lstBox1.SelectedItems.Count > 0)
...{
AddItems(lstBox2, lstBox1.SelectedItems);
RemoveItems(lstBox1, lstBox1.SelectedItems);
}
}
//将整个lstBox1的项转移到ListBox2中,并清空ListBox1
public static void MoveAll(ListBox lstBox1, ListBox lstBox2)
...{
AddItems(lstBox2, (List<T>)lstBox1.DataSource);
lstBox1.DataSource = new List<T>();
}
}
}

分享到:
评论

相关推荐

    mfc配合listbox操作数据库

    vc6操作数据库,从数据库到listbox读写数据。自己的测试代码,保证能用。

    操作多线程删除数据库表,以及控制listbox多线程呈现

    小程序主要针对多线程的操控,希望有助于对多线程感兴趣的人。如是出学者(注意:修改代码中的链数据库及查询需删除表的语句)。

    VB操作数据库.pdf

    VB 操作数据库 2010-12-01 12:58 首先有一点要注意,数据库的使用与我们以往所使用的文本文件不同.例如我们使用文本文 件,来记录各种有用的数据.那么大致有以下几步: 读取文件 -- 格式化数据 -- 关闭文件 -- 使用数据...

    ASP.NET网络数据库开发实例精解

    显示数据库中的内容 (listbox dropdownlist datalist datagrid 及显示数据库中的图片) 使用ASP.NET操作数据库 断开式数据库访问 使用数据网格处理数据 常用ASP.NET模块 ASP.NET网络数据库开发 . . . . 附带实例

    C#数据库编程(实现源代码)

    C#数据库编程(实现和源代码),数据库的连接,listBox控件的应用,数据库添加删除等等的操作

    VB非控件连接数据库对图片和文本读写修改记录集

    利用VB纯代码链接数据库、读写、修改、删除、清空、查找=操作数据库,本案例通过模块对图片和文本读写到数据库基本操作,实践读取所有数据记录到ListBox列表中进行数据管理,代码思路清晰易懂,中文注译,程序有扩展...

    ASP.NET数据库可视化自定义控件表单源码

    这款自定义表单是唯一一个实现在IE中可视化设计,无须下载插件,能操作后台数据库的表单工具 1:基本控件(shape控件,spin控件,checkboxlist控件,radiolist控件,掩码输入,两listbox互选,用代码控制页签控件)2:...

    8.陈恩点VB.NET 视频 Access的基本操作进阶

    4.陈恩点VB.NET 视频 listbox基本使用 5.陈恩点VB.NET 视频 TreeView的基本使用 6.陈恩点VB.NET 视频 Textbox的基本使用 7.陈恩点VB.NET 视频 Access的基本使用 8.陈恩点VB.NET 视频 Access的基本操作进阶 9.陈恩点...

    C#中使用SQLite数据库的方法介绍

    SQLite是一个开源的轻量级的桌面型数据库,它将几乎所有数据库要素(包括定义、表、索引和数据本身)都保存在一个单一的文件中。SQLite用C编写实现,它在内存消耗、文件体积、操作性能、简单性方面都有不错的表现

    ABAP 开发技巧

    ABAP数据库操作 在ABAP中访问外部数据库 创建BAPI程序的步骤 BADI ABAP中如何使用listbox ALV报表开发的模板 开发注意小技巧 UP TO X ROWS 用法 ABAP的基本的知识 如何使用SMOD和CMOD进行SD的用户增强 ABAP面试题...

    C# Winform数据库应用设计(附开发案例

    数据库操作综合示例 187 任务实训部分…… L94 1:使用 Listview控件查询部门员工信息… 94 2:部门员工信息删除和修改 3:实现员工信息模糊查询... 203 巩固练习 204 C#项目开发全程实录视频教程(全10个案例):htt: /...

    《ASP.NET+SQL组建动态网站》随书光盘

    2.7 操作SQL Server数据库 2.8 在SQL Server数据库中提取数据 本章小结 第3章 服务器控件 3.1 HTML服务器控件 3.1.1 HtmlInputFile控件 3.1.2 HtmlAnchor控件 3.1.3 HtmlTable、HtmlTableRow和HtmlTableCell控件 ...

    科研信息管理系统论文

    9.8 LISTBOX的数据的添加与移除并把数据添加到数据库 45 9.8.1listbox的数据的添加 45 9.8.2listbox的数据的删除 45 9.8.3 把listbox中的数据的添加到数据库 45 9.9 控件DROPDOWNLIST(它的ID是D1) 的数据填充 46 ...

    CH341A1.16

    修正芯片列表会出现报Listbox 索引 -1 的BUG 修正芯片查找 过滤功能不正常的BUG 1.07版 修正WIN7不能运行的BUG 1.08版 去除数据区已修改内容的着色功能, 让填充功能速度提升 增加编程工作时, 禁用打开\保存\填充\...

    课程类别陈恩点VB.NET 视频 VB2010基本输入输出Part1

    4.陈恩点VB.NET 视频 listbox基本使用 5.陈恩点VB.NET 视频 TreeView的基本使用 6.陈恩点VB.NET 视频 Textbox的基本使用 7.陈恩点VB.NET 视频 Access的基本使用 8.陈恩点VB.NET 视频 Access的基本操作进阶 9.陈恩点...

    7.陈恩点VB.NET 视频 Access的基本使用

    4.陈恩点VB.NET 视频 listbox基本使用 5.陈恩点VB.NET 视频 TreeView的基本使用 6.陈恩点VB.NET 视频 Textbox的基本使用 7.陈恩点VB.NET 视频 Access的基本使用 8.陈恩点VB.NET 视频 Access的基本操作进阶 9.陈恩点...

Global site tag (gtag.js) - Google Analytics