数据库实例-学生名册管理系统(DAO的使用实验)

 

代码:

 

  1 Public Class Form1
  2 
  3     Dim mydb As dao.Database '数据库对象
  4     Dim myws As dao.Workspace '工作空间,也就是 会话
  5     Dim mysql As String '保存sql查询的变量
  6     Dim myrs As dao.Recordset '记录集对象
  7     Dim myengine As dao.DBEngine = New dao.DBEngine() '引擎,直接初始化
  8 
  9     Public Function OpenDB() As Short '用于连接数据库
 10         'Dim DBPath As String = "G:\liz\DBs\学生名册.mdb"
 11         Dim DBPath As String = Application.StartupPath & "\学生名册.mdb"
 12         myws = myengine.Workspaces(0'取当前会话
 13         mydb = myws.OpenDatabase(DBPath, FalseFalse)
 14         mysql = "select * from 学生名册"
 15         myrs = mydb.OpenRecordset(mysql, dao.RecordsetTypeEnum.dbOpenDynaset) '用SQL,并使用表类型记录集
 16         'displayStats(myrs.RecordCount) 
 17     End Function
 18     Public Sub FillControl() '填充显示界面
 19         TextBox1.Text = myrs.Fields(0).Value.ToString
 20         TextBox2.Text = myrs.Fields(1).Value.ToString
 21         TextBox3.Text = myrs.Fields(3).Value.ToString.Substring(09)
 22         TextBox4.Text = myrs.Fields(2).Value.ToString
 23     End Sub
 24     Public Sub New()
 25         ' 此调用是 Windows 窗体设计器所必需的。
 26         InitializeComponent()
 27         ' 在 InitializeComponent() 调用之后添加任何初始化。
 28         Dim myresult As Short '在New里打开数据库
 29         myresult = OpenDB()
 30     End Sub
 31 
 32     Private Sub Form1_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
 33         FillControl() '激活窗体时填充显示控件
 34     End Sub
 35 
 36     Private Sub Button1_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles Button1.Click
 37         '向前浏览记录
 38         If myrs.BOF Then
 39             Beep()
 40             myrs.MoveFirst() '这个是因为,BOF在第一条记录的前面,不用这个,读记录集会出错
 41         Else
 42             myrs.MovePrevious()
 43             If myrs.BOF Then
 44                 myrs.MoveFirst()
 45                 Exit Sub
 46             End If
 47             FillControl()
 48         End If
 49     End Sub
 50 
 51     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 52         '先后浏览
 53         If myrs.EOF Then
 54             Beep()
 55             myrs.MoveLast()
 56         Else
 57             myrs.MoveNext()
 58             If myrs.EOF = True Then
 59                 myrs.MoveLast()
 60                 Exit Sub
 61             End If
 62             FillControl()
 63         End If
 64     End Sub
 65 
 66     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
 67         myrs.MoveFirst()
 68         FillControl()
 69     End Sub
 70 
 71     Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
 72         myrs.MoveLast()
 73         FillControl()
 74     End Sub
 75 
 76     Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
 77         Dim sql1 As String = "select * from 学生名册 where 学号='" & TextBox1.Text & "'"
 78         Dim rs1 As dao.Recordset
 79         rs1 = mydb.OpenRecordset(sql1, dao.RecordsetTypeEnum.dbOpenDynaset)
 80         If rs1.EOF Then
 81             myrs.AddNew()
 82             myrs.Fields(0).Value = TextBox1.Text
 83             myrs.Fields(1).Value = TextBox2.Text
 84             myrs.Fields(3).Value = TextBox3.Text
 85             myrs.Fields(2).Value = TextBox4.Text
 86             myrs.Update()
 87         Else
 88             MsgBox("这个学号已经存在")
 89             Exit Sub
 90         End If
 91         ClearTextBoxs()
 92         TextBox1.Focus()
 93     End Sub
 94     Public Sub ClearTextBoxs()
 95         Dim i As Integer
 96         Dim count As Integer = Me.Controls.Count
 97         Dim tb As TextBox
 98         For i = 0 To count - 1
 99             If TypeOf Me.Controls(i) Is TextBox Then
100                 tb = CType(Me.Controls(i), TextBox)
101                 tb.Text = ""
102             End If
103         Next
104     End Sub
105 
106     Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
107         End
108         '另外一种写法是:Application.Exit
109     End Sub
110 
111     Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
112         Dim sql1 As String = "select * from 学生名册 where 学号='" & TextBox1.Text & "'"
113         Dim rs1 As dao.Recordset = mydb.OpenRecordset(sql1, dao.RecordsetTypeEnum.dbOpenDynaset)
114         If rs1.EOF Then
115             MsgBox("查无此人", MsgBoxStyle.OkOnly)
116             Exit Sub
117         Else
118             rs1.Delete()
119             reConnect()
120             FillControl()
121         End If
122     End Sub
123     Public Sub reConnect()
124         mysql = "select * from 学生名册"
125         myrs = mydb.OpenRecordset(mysql, dao.RecordsetTypeEnum.dbOpenDynaset)
126         myrs.MoveFirst()
127     End Sub
128 
129     Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
130         Dim sql As String = "select * from 学生名册 where 学号='" & TextBox1.Text & "'"
131         Dim rs As dao.Recordset = mydb.OpenRecordset(sql, dao.RecordsetTypeEnum.dbOpenDynaset) 'dao.RecordsetTypeEnum.dbOpenDynaset是recordset表类型
132         If rs.EOF Then
133             MsgBox("这个学号不存在,如果要增加此人,请使用[新增]按钮", MsgBoxStyle.OkOnly, "信息框")
134             Exit Sub
135         Else
136             rs.Edit()
137             rs.Fields(0).Value = TextBox1.Text
138             rs.Fields(1).Value = TextBox2.Text
139             rs.Fields(2).Value = TextBox4.Text
140             rs.Fields(3).Value = TextBox3.Text
141             rs.Update()
142 
143         End If
144     End Sub
145 
146     Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
147         Dim tmpStr As String
148         tmpStr = TextBox6.Text
149         Dim sql As String = "select * from 学生名册 where " & ComboBox1.Text & "='" & tmpStr & "'"
150         myrs = mydb.OpenRecordset(sql, dao.RecordsetTypeEnum.dbOpenDynaset)
151         If myrs.EOF Then
152             MsgBox("查无此人", MsgBoxStyle.OkOnly, "查询结果")
153             Exit Sub
154         Else
155             FillControl()
156             'reConnect()
157         End If
158     End Sub
159 
160     Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
161         OpenDB()
162         FillControl()
163     End Sub
164 
165 
166     Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出ToolStripMenuItem.Click
167         Button9.PerformClick()
168     End Sub
169     Public Sub displayStats(ByVal RecCount As Integer)
170         Dim ss As String = "总记录数: "
171         StatusStrip1.Items(0).Text = ss & CStr(RecCount)
172     End Sub
173 
174     Private Sub myontop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles myontop.Click
175         If myontop.Checked = False Then
176             myontop.Checked = True
177             Me.TopMost = True '设置窗口在最顶层
178         Else
179             myontop.Checked = False
180             Me.TopMost = False
181         End If
182     End Sub
183 
184     Private Sub mySearchNumber_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mySearchNumber.Click
185         ComboBox1.Text = "学号"
186         MsgBox("请先输入学号,再点击查询按钮", MsgBoxStyle.OkOnly, "信息框")
187         TextBox6.Focus()
188     End Sub
189 
190     Private Sub mySearchTel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mySearchTel.Click
191         ComboBox1.Text = "电话号码"
192         MsgBox("请先输入电话号码,再点查询按钮", MsgBoxStyle.OkOnly, "提示")
193         TextBox6.Focus()
194     End Sub
195 
196     Private Sub mySearchName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mySearchName.Click
197         ComboBox1.Text = "姓名"
198         MsgBox("请先输入查询的名字", MsgBoxStyle.OkOnly, "提示")
199         TextBox6.Focus()
200     End Sub
201 
202     Private Sub cmExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmExit.Click
203         'Button9.PerformClick()
204         Application.Exit()
205     End Sub
206 
207     Private Sub cmAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmAbout.Click
208         MsgBox("学生管理系统" & vbCrLf & "设计人: 王华杰" & vbCrLf & "制作: 李志", MsgBoxStyle.OkCancel, "关于")
209     End Sub
210 
211     Private Sub btnCal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCal.Click
212         MonthCalendar1.Visible = True
213         MonthCalendar1.Left = btnCal.Left - MonthCalendar1.Width
214         MonthCalendar1.Top = btnCal.Top
215         MonthCalendar1.BringToFront()
216         If Len(TextBox3.Text) > 0 Then
217             MonthCalendar1.SetDate(TextBox3.Text.ToString)
218         End If
219     End Sub
220 
221     Private Sub MonthCalendar1_DateSelected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateSelected
222         TextBox3.Text = MonthCalendar1.SelectionRange.Start
223         MonthCalendar1.Visible = False
224     End Sub
225 End Class
226 

 

 

程序运行截图:

 

 

 

 

 

posted @ 2008-09-08 10:31  怒杀神  阅读(900)  评论(0编辑  收藏  举报