在Visual C#中用ListView显示数据记录

 
<script src="http://www.520code.com/adfile/banner.js" language="javascript" type="text/javascript"></script>
设为首页
加入收藏
联系我们
 
 
width="100%" scrolling="no" height="26" frameborder="0" border="0" src="http://www.520code.com/login.asp">
 
<script src="http://www.520code.com/adfile/top.js" language="javascript" type="text/javascript"></script>
width="930" scrolling="no" height="60" frameborder="0" src="http://www.520code.com/adfile/ad2.htm" allowtransparency="" marginwidth="0" marginheight="0">
<script src="http://www.520code.com/adfile/wztop.js" language="javascript" type="text/javascript"></script>
<script src="http://www.520code.com/adfile/edutop.js" language="javascript" type="text/javascript"></script>
 
 
 
您当前的位置:藏经阁资源站 -> 程序设计 -> C#语言 -> 数据库编程 -> 教程内容 退出登录 用户管理
 
 
栏目导航
 
<script src="http://www.520code.com/adfile/eduinfo.js" language="javascript" type="text/javascript"></script>
热门教程
· 劲舞团8K舞步 1.7最新舞步 魔神舞步
· [组图] 上网助手反间谍专家火热试用
· [组图] Win2000/XP/2003:系统万能Ghost全攻略
· [组图] Photoshop超酷海报效果
· [图文] 一分钟攻破ADSL 盗遍宽带密码1
· [组图] MATLAB 概 论
· AutoCAD二次开发语言及工具介绍
· [组图] Photoshop合成图:蛋壳-女孩
· [图文] 《仙剑奇侠传4》绝密情报 首度曝光
· [组图] 初学java常用开发工具介绍
· [图文] 将数码照片做成自动放映的Flash
· [图文] [常用]免费短信收发工具串串烧
· [图文] 《上古卷轴4》杂志扫描图抢先看
· 超全!Windows快捷键大全
· Pro/E 功能
· [组图] 用Pro/E画减速机渐开线斜齿圆柱齿轮的一般方法
· [组图] FLASH:《大话李白》创作全过程
· [组图] 使用Visual LISP创建简单的LISP应用程序
· 2004年计算机等级考试二级C语言试题及答案
· [图文] 信不信由你 KMPlayer隐藏着“雷电”
 
相关教程
· [图文] 在Vista中禁用讨厌的UAP功能
· 英内政部与微软密商在Vista中安插后门
· 利用ASP实现Oracle数据记录的分页显示
· [图文] 在Visual C#中运用API函数获取系统信息
· [组图] 多线程在Visual C#网络编程中的应用
· 在Visual C#中访问不同数据库
· 在Visual C#中使用XML指南之读取XML
· 用Visual C#来增加数据记录
· 在Visual C++中用ADO进行数据库编程(上)
· 在Visual C++中用ADO进行数据库编程(中)
· 在Visual C++中用ADO进行数据库编程(下)
· 在Visual C++中使用ADO存取数据库
· 在Visual C++中如何利用UDL文件来建立ADO连接
· 在Visual C++6.0中使用Text-to-Speech
· 在Visual Studio 6.0集成环境中开发设备驱动程序的方法..
· 在Visual C++ 中调用Excel 2000
· 在Visual Basic中终止Windows 95
· 在Visual Basic 6.0中实现自动播放VCD
· 在Visual Basic 中实现启动程序时的闪烁屏幕
· [组图] 在Visual Basic 6.0 中创建Word文档
在Visual C#中用ListView显示数据记录
作者:佚名  来源:不详  发布时间:2005-3-14 18:26:32  发布人:admin
<script language="javascript" type="text/javascript"> var newasp_fontsize=9; var newasp_lineheight=12; </script>

减小字体 增大字体

<script src="http://www.520code.com/adfile/gginfo.js" type="text/javascript"></script> width="728" scrolling="no" height="90" frameborder="0" src="http://www.520code.com/adfile/ad95.htm" allowtransparency="" marginwidth="0" marginheight="0">
    如果要你在程序中显示数据库中的数据记录,你首先想用的显示工具肯定是DataGrid。当然用DataGrid显示数据记录是一种既常用又简单的方法。 但是在程序控制方面,它却无法那么随心所欲。本文就是介绍另外一种显示数据记录的方法--用ListView来显示数据记录,由于他是手动加入记录,虽然 在程序设计中稍微烦琐了些,但对于那些在特殊的显示要求,却往往能够满足要求。

   在.Net FrameWork SDK中定义了许多组件,Visual C#就是通过获得这些组件的实例来丰富自己的界面的。列表(ListView)是程序设计中一个常用的组件,由于其自身的特点,往往被使用显示比较庞大的 数据信息。本文就是利用他的这个特点来看看它如何来显示数据记录。

一. 程序设计和运行的环境

   (1).微软视窗2000专业版本

   (2)..Net FrameWork SDK Beta 2

   (3).Microsoft Data Acess Component 2.6 (MDAC2.6)

二. 程序设计的具体思路

   (1).首先要建立数据连接,打开数据集

   (2).对列表进行初始化,并使得列表的显示条件符合数据记录的条件

   (3).对数据集中的数据记录进行遍历,在遍历中添加记录到列表中

   (4).关闭数据集,关闭数据连接

三. 具体的实现步骤

   (1).首先要建立数据连接,打开数据集

   对于如何建立数据连接和获得数据集的内容可以参考本站的一篇文章--《在Visual C#中访问不同的数据库》,在此文中对此类问题有比较详细的介绍,本文就不多叙述,具体实现语句如下:

// 定义数据连接的字符串,程序中使用的是Acess 2000数据库

private static string strConnect = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
Application.StartupPath + "//MY.MDB" ;
private OleDbConnection conConnection = new OleDbConnection ( strConnect ) ;
OleDbDataReader reader ;
// 获得Person里面的所以数据记录
string strCommand = "SELECT * FROM Persons" ;
this.conConnection.Open ( ) ; // 打开数据连接
OleDbCommand cmd = new OleDbCommand ( strCommand , conConnection ) ;
reader = cmd.ExecuteReader ( ) ; file://获得数据集

   (2).对列表进行初始化,并使得列表的显示条件符合数据记录的条件。需要说明的是在下面源代码中,lv是在Class中定义的一个ListView的一个实例

// 初始化ListView
lv = new ListView ( ) ;
lv.Left = 0 ;
lv.Top = 0 ;
lv.Width = 700 ;
lv.Height = this.ClientRectangle.Height ;
lv.GridLines = true ; file://显示各个记录的分隔线
lv.FullRowSelect = true ; file://要选择就是一行
lv.View = View.Details ; file://定义列表显示的方式
lv.Scrollable = true ; file://需要时候显示滚动条
lv.MultiSelect = false ; // 不可以多行选择
lv.HeaderStyle = ColumnHeaderStyle.Nonclickable ;
// 针对数据库的字段名称,建立与之适应显示表头
lv.Columns.Add ( "姓名" , 60 , HorizontalAlignment.Right ) ;
lv.Columns.Add ( "住宅电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "办公电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "移动电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "居住地点" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "工作单位" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "电子邮件" , 100 , HorizontalAlignment.Left ) ;
lv.Visible = true ;

   (3).对数据集中的数据记录进行遍历,在遍历中添加记录到列表中。

    可以利用数据集中的Read ( )方法,来实现对数据记录的遍历,Read ( )方法是首先指向首数据记录,并判断从此记录是否为尾记录,如果不是则返回false,如果是则返回true。并且如果不是尾记录则自动把数据指针移到下 一条记录上,然后在判断此记录是否是尾记录,如此循环,直至到尾记录为止。根据此可设计以下代码:

while ( reader.Read ( ) )
{
ListViewItem li = new ListViewItem ( ) ;
li.SubItems.Clear ( ) ;
li.SubItems[0].Text = reader["name"].ToString ( ) ;
li.SubItems.Add ( reader["HomePhone"].ToString ( ) ) ;
li.SubItems.Add ( reader["WorkPhone"].ToString ( ) ) ;
li.SubItems.Add ( reader["MobilePhone"].ToString ( ) ) ;
li.SubItems.Add ( reader["City"].ToString ( ) ) ;
li.SubItems.Add ( reader["Address"].ToString ( ) ) ;
li.SubItems.Add ( reader["Email"].ToString ( ) ) ;
lv.Items.Add ( li ) ;
}

   (4). 关闭数据集,关闭数据连接。
关闭数据集和关闭数据连接是很容易的,只要调用这二个对象的Close()方法即可,也只要调用在程序中具体如下:

reader.Close ( ) ; file://关闭数据集
this.conConnection.Close ( ) ; // 关闭数据连接

四. 程序运行结果界面和程序源代码(list.cs) :

   程序源代码:

using System ;
using System.Windows.Forms ;
using System.Drawing ;
using System.Data ;
using System.Data.OleDb ;
class MainForm : Form
{ // 定义数据连接的字符串
private static string strConnect = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
Application.StartupPath + "//MY.MDB" ;
private OleDbConnection conConnection = new OleDbConnection ( strConnect ) ;
private ListView lv ;
public MainForm ( )
{
// 初始化Form
this.Left = 0 ;
this.Top = 0 ;
this.Text = "在ListView中显示数据库内容!" ;

// 初始化ListView
lv = new ListView ( ) ;
lv.Left = 0 ;
lv.Top = 0 ;
lv.Width = 700 ;
lv.Height = this.ClientRectangle.Height ;
lv.GridLines = true ; file://显示各个记录的分隔线
lv.FullRowSelect = true ; file://要选择就是一行
lv.View = View.Details ; file://定义列表显示的方式
lv.Scrollable = true ; file://需要时候显示滚动条
lv.MultiSelect = false ; // 不可以多行选择
lv.HeaderStyle = ColumnHeaderStyle.Nonclickable ;
// 针对数据库的字段名称,建立与之适应显示表头
lv.Columns.Add ( "姓名" , 60 , HorizontalAlignment.Right ) ;
lv.Columns.Add ( "住宅电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "办公电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "移动电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "居住地点" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "工作单位" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "电子邮件" , 100 , HorizontalAlignment.Left ) ;
lv.Visible = true ;

OleDbDataReader reader ;
string strCommand = "SELECT * FROM Persons" ;
this.conConnection.Open ( ) ;// 打开数据连接
OleDbCommand cmd = new OleDbCommand ( strCommand , conConnection ) ;
reader = cmd.ExecuteReader ( ) ;//获得数据集
// 不断往列表中添加数据记录
while ( reader.Read ( ) )
{
ListViewItem li = new ListViewItem ( ) ;
li.SubItems.Clear ( ) ;
li.SubItems[0].Text = reader["name"].ToString ( ) ;
li.SubItems.Add ( reader["HomePhone"].ToString ( ) ) ;
li.SubItems.Add ( reader["WorkPhone"].ToString ( ) ) ;
li.SubItems.Add ( reader["MobilePhone"].ToString ( ) ) ;
li.SubItems.Add ( reader["City"].ToString ( ) ) ;
li.SubItems.Add ( reader["Address"].ToString ( ) ) ;
li.SubItems.Add ( reader["Email"].ToString ( ) ) ;
lv.Items.Add ( li ) ;
}
reader.Close ( ) ; // 关闭数据集
// 在Form中添加此列表
this.Controls.Add ( lv ) ;
// 关闭Form的时候,同时也关闭数据连接
this.Closed+=new EventHandler ( this_Closed ) ;
}
protected void this_Closed ( object sender , EventArgs eArgs )
{
this.conConnection.Close ( ) ; file://关闭数据连接
}
public static void Main ( )
{
Application.Run ( new MainForm ( ) ) ;
}
}

    在成功编译了上面源程序代码以后,在同一目录下建立一个Acess 2000的数据库,命名为MY.MDB,然后在其中建立一张数据表,字段如下:name,HomePhone,WorkPhone, MobilePhone,City,Address,Email。此时运行编译后的程序就可以得到如下运行界面:


          图01:用ListView显示数据记录

五. 对于其他数据库如何处理

   对于其他数据库也需要用ListView来显示数据记录,和上面的一个主要区别在于建立不同的数据字符串,下面就以SQL Server 7.0为例来简要说明:

   如果访问的数据库是SQL Server 7.0,只需要把上面源代码中的一条语句:

private static string strConnect = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + Application.StartupPath + "//MY.MDB" ;

   改变成:

private static string strConnect = "Provider=SQLOLEDB.1 ; Persist Security Info=False ; User ID = sa ; Initial Catalog=数据库名称; Data Source = 服务器名称 " ;

   即可。

六. 总结

   本文试图用另外一种方法来显示数据记录,虽然在使用的时候比起正常的方法要烦琐
些,但有更高的灵活度,并且也使得我们对于ListView组件的具体使用有了具体的和更高的认识。
[ <script src="http://www.520code.com/Edu/Hits.Asp?ArticleID=79510" language="JavaScript" type="text/javascript"></script> 本日:3 本周:4 本月:20 总数:391 ] [返回上一页] [打 印] [收 藏]
∷相关教程评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
 
 
Copyright © 2000-2006 18839.Com. All Rights Reserved .
EMAIL:webmaster@18839.com 联系QQ:63191918 苏ICP备05065193号 带宽支持: 三九互联
<script src="http://www.520code.com/inc/Std_StranJF.Js" language="javascript" type="text/javascript"></script> <script type="text/javascript" src="http://www.520code.com/count.asp"></script> <script type="text/javascript">var url='http://www.520code.com/';</script> <script src="http://www.520code.com//inc/online.asp?id=0&stat=http://www.520code.com/Edu/A11/11006/7/2005120579510.html&Referer=http%3A//www.google.cn/search%3Fcomplete%3D1%26hl%3Dzh-CN%26newwindow%3D1%26q%3D%25E6%25B7%25BB%25E5%258A%25A0%25E5%2588%2597%25E6%25A0%2587%25E5%25A4%25B4+LISTVIEW+C%2523%26start%3D10%26sa%3DN" language="javascript" type="text/javascript"></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值