手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

Visual Basic.NET快速开发MIS系统

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


  例如我们有一个tInfo表、tUser表、tChange表、tSub表,表中都定义了主关键字字段FSYSTEMID, 表结构如下:


        tChange表

tSub表
  生成窗体模板

  我们要向tInfo表、tUser二个表里插入数据,删除数据,更新数据,它们应该分别在二个Form里完成。这里,我们可先定义一Form模板,命名为FrmModule,在FrmModule上增加工具箱ToolBar1,在ToolBar1增加"增加"、"保存"按钮 、"删除"、"退出"等按钮,增加数据网络DataGrid1,文本盒及下拉列表盒。布置好后如下图:



  把在继承的Form中可能会重新设置控件的控件对象的友元属性改为公有属性:

  要使模板FrmModule中的控件能够在继承的窗体中能够修改其所继承的控件属性,必须把其友元属性改为公有属性

Public WithEvents Label2 As System.Windows.Forms.Label
Public WithEvents txt4 As System.Windows.Forms.ComboBox

  定义FrmModule类的全局变量

  FrmModule直接调用CData类的方法,完成所需功能。

Public Shared gCls As New CData()
Public gIsUpdate as Boolean
  定义FrmModule的方法

  在FrmModule的Load事件中连接数据库,并填充网格数据,即:

Public Shadows Sub FrmModel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 gCls.DB.ConnOracle("GDZC", "liyu", "123")
 gCls.FillGrid(Me.DataGrid1)
End Sub
  当单击DataGrid1时,应把DataGrid1的当前行写入输入控件中供用户修改数据,取得当前行的标识,这里用SystemID记录,同时表示可以更新。这个过程在DataGrid1的_CurrentCellChanged事件中完成, 即:

Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs)  Handles DataGrid1.CurrentCellChanged
 Dim RowIndex As Int16
 RowIndex = DataGrid1.CurrentRowIndex
 gCls.DataGridToText(Me)
 gCls.SystemID = DataGrid1.Item(RowIndex, 0)
 gIsUpdate = True
End Sub
  编写ToolBar1的ButtonClick事件。由按钮文本识别所单击的对象.当时单击"增加"时表示不能更新,当时单击"保存"时要识别是更新还是插入数据。执行完后要重新填充网格, 即:

Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
 Select Case e.Button.Text
 Case "增加"
  gIsUpdate = False
 Case "保存"
  WriteDateToArray()
  If gIsUpdate Then
   gCls.Update()
   Exit Select
  Else
   gCls.Insert()
  End If
 Case "删除"
  If MsgBox ("真的删除该数据吗?(Y/N)") = 7 Then
   Return
  End If
  gCls.Delete()
 Case "退出"
  Me.Close()
  Exit Sub
 End Select
 gCls.FillGrid(DataGrid1)
End Sub

'把输入的数据用对象数组保存起来
Public Overridable Sub WriteDateToArray()
 Dim i As Int16
 Dim obj As Control
 For i = 1 To gCls.FieldCount - 1
  For Each obj In Me.Controls
   If obj.TabIndex = i Then
    gCls.ObjFields(i) = obj.Text
    Exit For
   End If
  Next
 Next
 gCls.ObjFields(0) = gCls.DB.GetMaxID(gCls.UpdateTable, "FSYSTEMID") 1
End Sub
  生成继承窗体

  生成继承窗体

  我们的编程工作大部分都完成了,现在只需要增加新的继承窗体Form就可,方法是在Form项或项目菜单或工具栏选择添加继承的窗体,在弹出的Form中输入窗体名frmUser按打开,在选择继承器中选择FrmModule确定就生成了一新的窗体。 继承的继承如下:

Public Class frmUser:Inherits frmModel
  在生成的窗体中增加一些必要的控件,同时与根据表中字段对应关系设置的TabIndex的值。

  通过设置控件TabIndex的值,可以把该控件与物理表中的字段关系对应起来,如TabIndex为1,则对应物理表的第1个字段,如TabIndex为2,则对应物理表的第2个字段,如此例推。这方便把输入控件的数据写入表中,把网格数据写入输入控件中,这是技巧,其实现过程见方法:WriteDateToArray(),DataGridToText()。

  指定物理表

  在类frmUser的New方法中指定所操作的物理表名tUser。为什么要在这里指定表名呢?是因为程序在调用frmUser前,先必须申请frmUser的实类,同时进行实类化,自动执行构造函数New(),执行New()时,就把我们所要完成的功能代码放在这里,让它们自动执行。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS