`
coconut_zhang
  • 浏览: 541898 次
  • 性别: 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操作数据库

    MFC与ListCtrl和ListBox控件结合使用,可以方便地展示和操作数据,比如从SQL Server数据库中读取数据并显示在界面上。以下是对这个主题的详细讲解: 1. **MFC与数据库交互**: MFC通过ODBC(Open Database ...

    用listbox 显示数据库中的数据

    同时,可以监听`ListBox`的事件,如`SelectedIndexChanged`,以便在用户选择项时触发相应操作,如显示所选项的详细信息。 在实际应用中,为了提高用户体验,还可以考虑使用数据绑定技术,如`DataSource`和`...

    c# listbox显示数据库的内容

    当你需要从数据库获取数据并显示在ListBox中时,这涉及到数据库操作、数据绑定以及UI更新等关键步骤。以下是实现这个功能的具体过程和相关知识点: 1. **数据库连接**:首先,你需要建立与数据库的连接。C#提供了...

    用ListBox 显示数据库中的数据

    这个过程涉及到数据库连接、SQL查询、数据读取以及UI控件的数据绑定,是.NET开发中常见的操作。在实际项目中,可能还需要考虑错误处理、性能优化、用户体验等因素,但上述步骤为初学者提供了一个基础的实现框架。在...

    VB数据库操作大全

    在VB(Visual Basic)编程环境中,数据库操作是十分重要的一个环节,尤其是在开发管理信息系统或数据驱动的应用程序时。本资源“VB数据库操作大全”显然针对的是那些希望掌握VB与Access数据库交互技巧的初学者。...

    c# 委托访问listbox多线程操作

    ### C# 委托访问 ListBox 的多线程操作 #### 概述 在 C# 编程语言中,为了确保界面的响应性并避免在执行长时间运行的任务时导致用户界面(UI)冻结,通常会采用多线程技术来处理后台任务。在本案例中,介绍了一种...

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

    在这个"操作多线程删除数据库表,以及控制listbox多线程呈现"的小程序中,我们将探讨如何利用多线程来处理数据库操作和UI更新。 1. **多线程基础**:多线程是指在一个应用程序中同时运行多个独立的执行流。在.NET ...

    JQuery、C#两种操作ListBox的方法

    本篇文章将深入探讨如何使用JQuery和C#这两种不同的技术来操作ListBox。 首先,我们来了解一下JQuery。JQuery是一个强大的JavaScript库,简化了DOM操作、事件处理和Ajax交互。对于ListBox,JQuery提供了方便的方法...

    Ado连接数据库ListBox中Edit嵌套使用CommboBox

    数据库操作可能会抛出异常,确保你的代码包含适当的错误处理和异常处理机制,以防止程序因未处理的错误而崩溃。 8. **资源管理**: 记得在适当的时候关闭数据库连接和释放其他资源,防止内存泄漏。 通过以上步骤...

    C# ListBox 的使用

    在Windows Forms和WPF应用中,ListBox经常被用于提供用户交互,比如在应用程序中进行选择操作。本资源分享将深入探讨如何在C#中有效使用ListBox,包括其基本用法、数据绑定、事件处理以及自定义样式等。 1. **基本...

    可视化应用程序设计及数据库操作

    总结来说,可视化应用程序设计及数据库操作的学习涵盖了Windows Forms控件的使用,如创建和显示窗体,以及各种常用控件的属性、事件和方法。同时,它还强调了数据库操作技术,特别是如何在C#中与数据库进行交互,...

    .net Gridview和ListBox的例子

    使用`TransactionScope`类,可以方便地实现数据库操作的事务性,保证在一组操作中要么全部成功,要么全部回滚。例如: ```csharp using (var scope = new TransactionScope()) { // 数据库操作 using (var conn =...

    基于VB与数据库操作的学籍管理系统

    【VB与数据库操作的学籍管理系统】是一种使用Visual Basic(VB)编程语言开发的应用程序,它结合了数据库技术,主要用于管理教育机构的学生学籍信息。VB是Microsoft开发的一种面向对象的编程工具,以其直观的界面...

    VB.NET ListBox内容用鼠标拖动和按钮移动实现排序功能

    可以使用XML、JSON或数据库来存储ListBox的项目和它们的顺序。在应用程序启动时,读取存储的数据并按照顺序填充ListBox,确保每次打开应用程序时,列表都保持用户的排序设置。 最后,为了提供更好的用户体验,可以...

    PB LISTBOX使用

    本文将深入探讨如何在PB环境中利用LISTBOX进行数据操作,特别是在标题提及的"PB LISTBOX使用"场景下,即如何实现从左侧多列数据的列表框中选择数据并将其添加到右侧列表框。 首先,我们需要理解PB中的LISTBOX控件。...

    VB对SQL数据库操作

    - **数据绑定控件录入**:VB中的控件如TextBox、ListBox等可以通过数据绑定直接连接到数据库,通过设置控件的DataSource和DataMember属性,可以实现数据的自动绑定。当用户在控件中输入数据后,调用ADO控件的`Add...

    C#ListBox简单应用例子

    本篇文章将详细讲解如何在实际项目中应用ListBox,特别是涉及数据交换的操作。我们将通过一个名为"ListBoxTest"的示例项目来深入理解其基本用法和功能。 首先,我们要了解ListBox的基础属性。`Items`属性是ListBox...

    实现ListBox控件与ListBox控件交换数据

    1. 数据源绑定:ListBox控件通常通过数据源(如数组、集合、数据库查询结果等)进行填充。在实现数据交换前,确保两个ListBox都已正确绑定到各自的数据源。 2. 添加和移除项:可以使用`Add`方法向ListBox中添加新项...

Global site tag (gtag.js) - Google Analytics