您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > VB.net > 正文
Visual Basic.NET快速开发MIS系统
[文章信息]
作者:黎宇
时间:2002-11-29
出处:yesky
责任编辑:方舟
[文章导读]
本文介绍微软最新技术Visual Basic.NET在数据库开发方面的应用。结合数据库系统开发的知识,介绍了物理表操作的方法
advertisement
热点推荐
· 闪客五周年作品展:灵光1999
· 10.18精选 Win2003共享打印
· Messenger Plus!新功能体验
· 专业的魅力:图层的使用
· 金山文字2003中对文档进行页面设置
[正文]

上一页  1 2 3 4  下一页

  窗体继承及实现

  所处理的物理表

  有了上面的类,我们就可应用它来实现MIS系统中关于物理表的操作功能。

  例如我们有一个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


上一页  1 2 3 4  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 闪客五周年作品展:灵光1999
  • 10.18精选 Win2003共享打印
  • [配置推荐]7000元HL2游戏配置
  • FPS顶级秘密武器 Aqua3鼠标垫
  • Messenger Plus!新功能体验
  • 扶不起的国足 《PSOBB》足球赛
  • 另类魔兽争霸简史
  • 魔兽亡灵族历代主流战术回顾
  • Advertisement