知识大全 用VisualC#中轻松浏览数据库记录

Posted

篇首语:没有一个冬天不可逾越,没有一个春天不会来临。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用VisualC#中轻松浏览数据库记录相关的知识,希望对你有一定的参考价值。

用VisualC#中轻松浏览数据库记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  用Delphi或者VB编程 在对数据库中的记录进行操作的时候 经常用到一个名称为数据导航器的组件 通过这个组件 可以非常方便的实现对已经绑定到此组件的数据表中的记录进行浏览 就是所谓的上一条记录 下一条记录 首记录 尾记录等 那么在Visual C#是否也存在这样的组件呢?答案是否定的 但由于Visual C#有着强大的数据库处理能力 所以可以比较方便的做一个类似于此组件的程序 本文就是来介绍此程序的具体制作过程

  一 程序的主要功能介绍

  程序打开本地Acess数据库(sample mdb)中的book数据表 然后把book数据表中的字段绑定到程序提供的文本框中 显示出来 通过程序中的四个按钮 首记录 尾记录 上一条 下一条 实现对book数据表中的记录浏览 程序的运行界面如下

  二 程序设计和运行的环境设置

  ( )视窗 服务器版

  ( )Microsoft Acess Data Component ( MADC )

  三 程序设计难点和应该注意的问题

  ( )如何实现把数据表中的字段用文本框来显示

  如果直接把字段的值赋值给文本框 这时如果用 下一条 等按钮来浏览数据记录的时候 文本框的值是不会变化的 如何让文本框根据数据表中的记录指针来动态的显示要字段值 这是本文的一个重点 也是一个难点

  本文是通过把数据表中的字段值绑定到文本框的 Text 属性上 来实现动态显示字段数值的 实现这种处理要用到文本框的DataBindings属性和其中的Add方法 具体语法如下

  文本组件名称 DataBindings Add ( Text DataSet对象 数据表和字段名称 ) ;

  在程序具体如下

  t_bookid DataBindings Add ( Text myDataSet books bookid ) ;

  这样就可以根据记录指针来实现要显示的字段值了

  ( )如何改变记录指针

  只有掌握如何改变记录指针 才可以随心所欲的浏览记录 Visual C#改变记录指针是通过一个命叫BindingManagerBase对象来实现的 此对象封装在名称空间System Windows Froms中 BindingManagerBase对象是一个抽象的对象 管理所有绑定的同类的数据源和数据成员 在程序设计中主要用到BindingManagerBase对象中的二个属性 即 Position属性和Count属性 第一个属性是记录了数据集的当前指针 后一个属性是当前数据集中的记录总数 由此可以得到改变记录指针的四个按钮对应的程序代码

  i> 首记录 myBind Position = ;ii> 尾记录 myBind Position = myBind Count ;iii> 下一条记录和操作后运行界面 if ( myBind Position == myBind Count )MessageBox Show ( 已经到了最后一条记录! ) ;elsemyBind Position += ;

  iV> 上一条记录和操作后运行界面 if ( myBind Position == )MessageBox Show ( 已经到了第一条记录! ) ;elsemyBind Position = ;

  四 程序源代码:

  using System ;using System Drawing ;using System ComponentModel ;using System Windows Forms ;using System Data OleDb ;using System Data ;

  public class DataView : Form private System ComponentModel Container ponents ;private Button lastrec ;private Button nextrec ;private Button previousrec ;private Button firstrec ;private TextBox t_books ;private TextBox t_bookprice ;private TextBox t_bookauthor ;

  private TextBox t_booktitle ;private TextBox t_bookid ;private Label l_books ;private Label l_bookprice ;private Label l_bookauthor ;private Label l_booktitle ;private Label l_bookid ;private Label label ;private System Data DataSet myDataSet ;private BindingManagerBase myBind ;

  public DataView ( )//连接到一个数据库GetConnected ( ) ;// 对窗体中所需要的内容进行初始化InitializeComponent ( );public override void Dispose ( ) base Dispose ( ) ;ponents Dispose ( ) ;public static void Main ( ) Application Run ( new DataView ( ) ) ;public void GetConnected ( )try//创建一个 OleDbConnectionstring strCon = Provider = Microsoft Jet OLEDB ; Data Source = sample mdb ;OleDbConnection myConn = new OleDbConnection ( strCon ) ;string strCom = SELECT * FROM books ;//创建一个 DataSetmyDataSet = new DataSet ( ) ;

  myConn Open ( ) ;//用 OleDbDataAdapter 得到一个数据集OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom myConn ) ;//把Dataset绑定books数据表myCommand Fill ( myDataSet books ) ;//关闭此OleDbConnectionmyConn Close ( ) ;catch ( Exception e )MessageBox Show ( 连接错误! + e ToString ( ) 错误 ) ;private void InitializeComponent ( )ponents = new System ComponentModel Container ( ) ;this t_bookid = new TextBox ( ) ;this nextrec = new Button ( ) ;

  this lastrec = new Button ( ) ;this l_bookid = new Label ( ) ;this t_books = new TextBox ( ) ;this t_booktitle = new TextBox ( ) ;this t_bookprice = new TextBox ( ) ;this firstrec = new Button ( ) ;this l_booktitle = new Label ( ) ;this l_bookprice = new Label ( ) ;this l_books = new Label ( ) ;this previousrec = new Button ( ) ;this l_bookauthor = new Label ( ) ;this t_bookauthor = new TextBox ( ) ;this label = new Label ( ) ;

  //以下是对数据浏览的四个按钮进行初始化firstrec Location = new System Drawing Point ( ) ;firstrec ForeColor = System Drawing Color Black ;firstrec Size = new System Drawing Size ( ) ;firstrec TabIndex = ;firstrec Font = new System Drawing Font( 仿宋 f );firstrec Text = 首记录 ;firstrec Click += new System EventHandler(GoFirst);previousrec Location = new System Drawing Point ( ) ;previousrec ForeColor = System Drawing Color Black ;previousrec Size = new System Drawing Size( ) ;previousrec TabIndex = ;previousrec Font = new System Drawing Font ( 仿宋 f ) ;previousrec Text = 上一条 ;previousrec Click += new System EventHandler ( GoPrevious ) ;nextrec Location = new System Drawing Point ( );nextrec ForeColor = System Drawing Color Black ;nextrec Size = new System Drawing Size ( ) ;nextrec TabIndex = ;nextrec Font = new System Drawing Font ( 仿宋 f ) ;nextrec Text = 下一条 ;nextrec Click += new System EventHandler ( GoNext );

  lastrec Location = new System Drawing Point ( ) ;lastrec ForeColor = System Drawing Color Black ;lastrec Size = new System Drawing Size ( ) ;lastrec TabIndex = ;lastrec Font = new System Drawing Font ( 仿宋 f ) ;lastrec Text = 尾记录 ;lastrec Click += new System EventHandler ( GoLast ) ;//以下是对为显示数据记录而设定的标签和文本框进行初始化 并把记录绑定在不同的绑定到文本框 Text 属性上t_bookid Location = new System Drawing Point ( ) ;

  t_bookid TabIndex = ;t_bookid Size = new System Drawing Size ( ) ;t_bookid DataBindings Add ( Text myDataSet books bookid ) ;

  t_books Location = new System Drawing Point ( ) ;t_books TabIndex = ;t_books Size = new System Drawing Size ( ) ;t_books DataBindings Add ( Text myDataSet books bookstock ) ;

  t_booktitle Location = new System Drawing Point ( ) ;t_booktitle TabIndex = ;t_booktitle Size = new System Drawing Size ( ) ;t_booktitle DataBindings Add( Text myDataSet books booktitle ) ;

  t_bookprice Location = new System Drawing Point ( ) ;t_bookprice TabIndex = ;t_bookprice Size = new System Drawing Size ( ) ;t_bookprice DataBindings Add ( Text myDataSet books bookprice ) ;

  t_bookauthor Location = new System Drawing Point ( ) ;t_bookauthor TabIndex = ;t_bookauthor Size = new System Drawing Size ( ) ;t_bookauthor DataBindings Add ( Text myDataSet books bookauthor ) ;l_bookid Location = new System Drawing Point ( ) ;l_bookid Text = 书本序号 ;l_bookid Size = new System Drawing Size ( ) ;l_bookid Font = new System Drawing Font ( 仿宋 f ) ;l_bookid TabIndex = ;l_bookid TextAlign = System Drawing ContentAlignment MiddleCenter ;l_booktitle Location = new System Drawing Point ( ) ;l_booktitle Text = 书 名 ;l_booktitle Size = new System Drawing Size ( ) ;l_booktitle Font = new System Drawing Font ( 仿宋 f ) ;l_booktitle TabIndex = ;l_booktitle TextAlign = System Drawing ContentAlignment MiddleCenter ;

  l_bookprice Location = new System Drawing Point ( ) ;l_bookprice Text = 价 格 ;l_bookprice Size = new System Drawing Size ( ) ;l_bookprice Font = new System Drawing Font ( 仿宋 f ) ;

  l_bookprice TabIndex = ;l_bookprice TextAlign = System Drawing ContentAlignment MiddleCenter ;

  l_books Location = new System Drawing Point ( ) ;l_books Text = 书 架 号 ;l_books Size = new System Drawing Size ( ) ;l_books Font = new System Drawing Font ( 仿宋 f ) ;l_books TabIndex = ;l_books TextAlign = System Drawing ContentAlignment MiddleCenter ;

  l_bookauthor Location = new System Drawing Point ( ) ;l_bookauthor Text = 作 者 ;l_bookauthor Size = new System Drawing Size ( ) ;l_bookauthor Font = new System Drawing Font ( 仿宋 f ) ;l_bookauthor TabIndex = ;l_bookauthor TextAlign = System Drawing ContentAlignment MiddleCenter ;

  label Location = new System Drawing Point ( ) ;label Text = 浏览书籍信息 ;label Size = new System Drawing Size ( ) ;label ForeColor = System Drawing Color Green ;label Font = new System Drawing Font ( 仿宋 f ) ;label TabIndex = ;//对窗体进行设定this Text = 用C#做浏览数据库中记录的程序! ;this AutoScaleBaseSize = new System Drawing Size ( ) ;this FormBorderStyle = FormBorderStyle FixedSingle ;this ClientSize = new System Drawing Size ( ) ;//在窗体中加入组件this Controls Add ( lastrec ) ;this Controls Add ( nextrec ) ;this Controls Add ( previousrec ) ;this Controls Add ( firstrec ) ;this Controls Add ( t_books ) ;this Controls Add ( t_bookprice ) ;this Controls Add ( t_bookauthor ) ;this Controls Add ( t_booktitle ) ;this Controls Add ( t_bookid ) ;this Controls Add ( l_books ) ;this Controls Add ( l_bookprice ) ;this Controls Add ( l_bookauthor ) ;this Controls Add ( l_booktitle ) ;this Controls Add ( l_bookid ) ;this Controls Add ( label ) ;//把对象DataSet和 books 数据表绑定到此myBind对象myBind= this BindingContext [ myDataSet books ] ;//按钮 尾记录 对象事件程序

  protected void GoLast ( object sender System EventArgs e )myBind Position = myBind Count ;

  //按钮 下一条 对象事件程序protected void GoNext ( object sender System EventArgs e )if ( myBind Position == myBind Count )MessageBox Show ( 已经到了最后一条记录! ) ;elsemyBind Position += ;//按钮 上一条 对象事件程序protected void GoPrevious ( object sender System EventArgs e )if ( myBind Position == )MessageBox Show ( 已经到了第一条记录! ) ;elsemyBind Position = ;//按钮 首记录 对象事件程序protected void GoFirst ( object sender System EventArgs e )myBind Position = ;

  五 总结

cha138/Article/program/net/201311/12189

相关参考

知识大全 向浏览器写入二进制文件

  如何使用ASPNET和VisualC#NET向浏览器写入二进制文件  概要本分步指南创建了一个示例页该页演示了如何从文件中检索二进制数据然后如何使用ASPNET和VisualC#将该数据写出到浏览

知识大全 用Visual C#来修改和删除数据库记录

用VisualC#来修改和删除数据库记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在前面的一

知识大全 在VisualC#中访问不同数据库

在VisualC#中访问不同数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  visualC

知识大全 用腾讯浏览器登入微信电脑版,聊天记录会像qq一样存在电脑的某个资料夹里吗

用腾讯浏览器登入微信电脑版,聊天记录会像qq一样存在电脑的某个资料夹里吗?如果有,从哪里找?检视语音聊天记录的方法>01语音聊天记录的备份和提取无需root,这些内容都备份在SD卡上。>0

知识大全 Visual C# 打造 “浏览器”

VisualC#打造“浏览器”  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VisualC#是

知识大全 用DataGrid浏览数据相关实例

用DataGrid浏览数据相关实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据集    

知识大全 Delphi编程轻松实现大图像浏览

Delphi编程轻松实现大图像浏览  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本实例演示如何不用

知识大全 浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)

浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶

知识大全 用hibernate查询一段时间的记录

  这是在一个群里讨论的问题  方法很多如果说数据库中数据的存储是用date类型的话改怎么做如果说做数据迁移的话又该怎么做?  最终的讨论方案在用字符串存储格式上比较好毕竟各个数据库对时间的存储存在差

知识大全 VisualC#中实现DB2数据库编程

VisualC#中实现DB2数据库编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在visu