这个工程是初学玩MIS系统建设后自己做的,当时只熟悉VB,所以选择了VB.NET。
大概是今年6月中旬吧,老师布置了一个很简单的东西,让我们分组做好了上交,但是说实话只有自己一个人能做了,所以自己花了一天半一夜+一半的时间把这个东西的基本功能完成后上交了。
由于一天半的时间非常有限,VB.NET也是当时一个多小时扫描了一下,所以数据库设计以及代码编写上面进行了很少的思考。数据库也没有什么范式化的技巧,总的来说这就是一个练手的东西了。现在想起来这个工程真的非常幼稚了。也不怕丢脸,反正是自己做的,也算是自己的一个作品了。
数据库设计
1.学生基本信息表:student_info
| 字段名 | 字段描述 | 字段类型 | 字段长度 | 备注 |
| StuNO | 学号 | Char | 10 | 主键 |
| StuName | 姓名 | Varchar | 8 | Not null |
| Sex | 性别 | Char | 2 | |
| Born | 出生 | Datetime | 8 | |
| Phone | 电话 | Char | 12 | |
| Native | 籍贯 | Varchar | 10 | |
| Political | 政治面貌 | Char | 4 | |
| Class_ID | 班级号 | Char | 7 | Not null |
| Father | 父亲 | Varchar | 8 | |
| Mother | 母亲 | Varchar | 8 | |
| Address | 地址 | Varchar | 50 | |
3.班级(专业)信息表:class_info
| 字段名 | 字段描述 | 字段类型 | 字段长度 | 备注 |
| Class_ID | 班级编号 | Char | 7 | 主键 |
| Class_Name | 班级(专业)名 | Varchar | 30 | Not null |
4.课程信息表:course_info
| 字段名 | 字段描述 | 字段类型 | 字段长度 | 备注 |
| Course_ID | 课程编号 | Char | 5 | 主键 |
| Course_Name | 课程名 | Varchar | 30 | Not null |
| Credit_Hour | 学分 | Int | 4 | Not null |
5.学生成绩表:result_info
| 字段名 | 字段描述 | 字段类型 | 字段长度 | 备注 |
| StuNO | 学号 | Char | 10 | 主键 |
| Course_ID | 课程号 | Char | 5 | Not null |
| Result | 成绩 | Int | 4 | Not null |
只贴部分代码了,多了也不会有人看,代码都是比较基础的写法,没有什么技术含量。当然现在的技术比这个高多了。
1.成绩管理窗体:
Imports System.Data.Sql
Imports System.Data.SqlClient
Public Class ResultForm
'填充DataGridView控件
Sub ResultDataView()
Resultdgv.DataSource = ds.Tables("Result_View").DefaultView
bdsour = New BindingSource(ds, "Result_View")
BindNav.BindingSource = bdsour
SourRefresh()
End Sub
'更新指针位置
Sub SourRefresh()
Resultdgv.DataSource = BindNav.BindingSource
End Sub
Private Sub ResultForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Resultdgv.Width = Me.Width - 8
Resultdgv.Left = 0
IsEdit = False '不允许编辑标志
IsManage = False '未进入管理状态标志
'TODO: 这行代码将数据加载到表“StudentDataSet.class_info”中。您可以根据需要移动或移除它。
Me.Class_infoTabA.Fill(Me.StudentDataSet.class_info)
'连接数据库
SqlConn()
userpwd = "123"
End Sub
Private Sub btnShowAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowAll.Click
sql = "select 学号,姓名,课程,分数,学分,班级 from Result_View"
SqlCmd()
SqlResult()
ResultDataView()
End Sub
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
If (Trim(txtSearch.Text) <> "") And (CombType.Text <> "") Then
sql = "select 学号,姓名,课程,分数,学分,班级 from Result_View where " & CombType.Text & "='" & Trim(txtSearch.Text) & "'"
SqlCmd()
SqlResult()
ResultDataView()
End If
End Sub
Private Sub bindNavEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavEdit.Click
If IsEdit = False Then '进入编辑状态
Resultdgv.ReadOnly = False
MsgBox("进入编辑模式", MsgBoxStyle.Information Or MsgBoxStyle.OkOnly, "提示信息")
bindNavEdit.Text = "锁定"
IsEdit = True
Else '退出编辑状态
Resultdgv.ReadOnly = True
bindNavEdit.Text = "编辑"
MsgBox("退出编辑模式", MsgBoxStyle.Information Or MsgBoxStyle.OkOnly, "提示信息")
IsEdit = False
End If
End Sub
Private Sub bindNavManage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavManage.Click
If IsManage = False Then '进入管理状态
UnLockResultForm.ShowDialog()
Else '提示已经进入管理状态
MsgBox("已经进入管理状态", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "提示信息")
End If
End Sub
Private Sub bindNavExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavExit.Click
If IsEdit = True Then
Resultdgv.ReadOnly = True
bindNavEdit.Text = "编辑"
IsEdit = False
End If
If IsManage = True Then
Me.bindNavDelItem.Visible = False
Me.bindNavEdit.Visible = False
Me.bindNavRefresh.Visible = False
Me.bindNavAdd.Visible = False
IsManage = False
End If
Me.Close()
End Sub
Private Sub BindingNavigatorMoveNextItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveNextItem.Click
SourRefresh() '更新数据指针位置
End Sub
Private Sub BindingNavigatorMovePreviousItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMovePreviousItem.Click
SourRefresh()
End Sub
Private Sub BindingNavigatorMoveFirstItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveFirstItem.Click
SourRefresh()
End Sub
Private Sub BindingNavigatorMoveLastItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveLastItem.Click
SourRefresh()
End Sub
Private Sub ResultForm_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
If Me.Width > 568 And Me.Height > 452 Then
Resultdgv.Width = Me.Width - 8
Resultdgv.Height = Me.Height - 2 * Resultdgv.Top
End If
End Sub
Private Sub CombClass_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CombClass.SelectionChangeCommitted
sql = "select 学号,姓名,课程,分数,学分,班级 from Result_View where 班级='" & CombClass.Text & "'"
SqlCmd()
SqlResult()
ResultDataView()
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub bindNavAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavAdd.Click
NewResultForm.ShowDialog()
End Sub
Private Sub bindNavRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavRefresh.Click
Try
Dim dt1, dt2, dt3, dt4 As DataTable
Dim adp1, adp2, adp3, adp4 As SqlDataAdapter
Dim build1, build2, build3, build4 As SqlCommandBuilder
Dim sql1, sql2, sql3, sql4 As String
sql1 = "select * from student_info"
sql2 = "select * from result_info"
sql3 = "select * from class_info"
sql4 = "select * from course_info"
adp1 = New SqlDataAdapter(sql1, conn)
adp2 = New SqlDataAdapter(sql2, conn)
adp3 = New SqlDataAdapter(sql3, conn)
adp4 = New SqlDataAdapter(sql4, conn)
adp1.Fill(ds, sql1)
adp2.Fill(ds, sql2)
adp3.Fill(ds, sql3)
adp4.Fill(ds, sql4)
dt1 = New DataTable()
dt1 = ds.Tables(sql1)
dt2 = New DataTable()
dt2 = ds.Tables(sql2)
dt3 = New DataTable()
dt3 = ds.Tables(sql3)
dt4 = New DataTable()
dt4 = ds.Tables(sql4)
build1 = New SqlCommandBuilder(adp1)
build2 = New SqlCommandBuilder(adp2)
build3 = New SqlCommandBuilder(adp3)
build4 = New SqlCommandBuilder(adp4)
Me.Validate()
bdsour.EndEdit() '结束编辑
adp1.Update(dt4.GetChanges)
MsgBox("更新成功", MsgBoxStyle.Information Or MsgBoxStyle.OkOnly, "提示信息")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
2.公共数据模块
Imports System.Data.SqlClient
Imports System.Data.Sql
Module Module1
'登陆窗口变量
Public userid As String '登陆用户名存储
Public userpwd As String '登陆密码存储
'管理窗口变量
Public IsEdit As Boolean
Public IsManage As Boolean
'数据库相关定义和函数
'/////////////////////////////////////////////////////////////////////////////////
'数据类型定义
'-------------------------------------------
Public bdsour As BindingSource
Public conn As SqlConnection
Public cmd As SqlDataAdapter
Public ds As DataSet
Public sql As String
'-------------------------------------------
'数据库连接
Public Function SqlConn()
Try
conn = New SqlConnection("server=(local);database=student;uid=sa;password=loveyou")
Return True
Catch ex As Exception
Throw ex
Return False
End Try
End Function
'登陆用户验证(查询语句通用)
Public Function SqlLogin()
Try
conn.Close()
cmd = New SqlDataAdapter(sql, conn)
conn.Open()
Return True
Catch ex As Exception
Throw ex
Return False
End Try
End Function
'执行SQL语句(插入,删除等操作语句通用)
Public Function SqlCmd()
Try
conn.Close() '关闭上一次连接
cmd = New SqlDataAdapter(sql, conn)
conn.Open()
cmd.SelectCommand.ExecuteNonQuery()
Return True
Catch ex As Exception
Throw ex
Return False
End Try
End Function
'成绩表填充数据集合
Public Function SqlResult()
Try
ds = New DataSet()
ds.Clear()
cmd.Fill(ds, "Result_View")
Return True
Catch ex As Exception
Throw ex
Return False
End Try
End Function
'学生基本信息填充数据集合
Public Function SqlStuInfo()
Try
ds = New DataSet()
ds.Clear()
cmd.Fill(ds, "StuInfo_View")
Return True
Catch ex As Exception
Throw ex
Return False
End Try
End Function
'/////////////////////////////////////////////////////////////////////////////////
End Module
'这里主要是公有变量和公共函数
3.学生信息管理:
Public Class StuInfoForm
'文本数据绑定
Sub TextBind()
End Sub
'DataGrid数据绑定
Sub StuInfoDataView()
StuInfodgv.DataSource = ds.Tables("StuInfo_View").DefaultView
bdsour = New BindingSource(ds, "StuInfo_View")
BindNav.BindingSource = bdsour
SourRefresh()
End Sub
'更新指针位置
Sub SourRefresh()
StuInfodgv.DataSource = BindNav.BindingSource
End Sub
Private Sub StuInfoForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“StudentDataSet.class_info”中。您可以根据需要移动或移除它。
Me.Class_infoTableAdapter.Fill(Me.StudentDataSet.class_info)
SqlConn() '连接数据库
End Sub
Private Sub bindNavManage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavManage.Click
If IsManage = True Then
MsgBox("已经进入管理模式", MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, "提示信息")
Else
UnLockStuInfoForm.ShowDialog()
End If
End Sub
Private Sub bindNavExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavExit.Click
If IsEdit = True Then
Me.GroupBox1.Enabled = False
Me.CombChoClass.Visible = False
Me.txtClass.Visible = True
IsEdit = False
End If
If IsManage = True Then
Me.bindNavEdit.Visible = False
Me.bindNavAdd.Visible = False
Me.bindNavDelItem.Visible = False
Me.bindNavRefresh.Visible = False
IsManage = False
End If
Me.Close()
End Sub
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
If (Trim(txtType.Text) <> "") And (CombType.Text <> "") Then
sql = "select * from StuInfo_View where " & CombType.Text & "='" & Trim(txtType.Text) & "'"
SqlCmd()
SqlStuInfo()
StuInfoDataView()
End If
End Sub
Private Sub BindingNavigatorMoveNextItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
SourRefresh()
End Sub
Private Sub BindingNavigatorMovePreviousItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
SourRefresh()
End Sub
Private Sub BindingNavigatorMoveLastItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
SourRefresh()
End Sub
Private Sub BindingNavigatorMoveFirstItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
SourRefresh()
End Sub
Private Sub btnShowAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowAll.Click
sql = "select 学号,姓名,性别,班级,身份证号,电话,籍贯,政治面貌,父亲,母亲,地址,备注 from StuInfo_View"
SqlCmd()
SqlStuInfo()
StuInfoDataView()
End Sub
Private Sub bindNavEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavEdit.Click
If IsEdit = False Then '如果没有进入编辑,则进入
Me.GroupBox1.Enabled = True
Me.CombChoClass.Visible = True
Me.txtClass.Visible = False
Me.bindNavEdit.Text = "锁定"
IsEdit = True
MsgBox("进入编辑模式", MsgBoxStyle.Information Or MsgBoxStyle.OkOnly, "提示信息")
Else
Me.GroupBox1.Enabled = False
Me.CombChoClass.Visible = False
Me.txtClass.Visible = True
Me.bindNavEdit.Text = "编辑"
IsEdit = False
MsgBox("退出编辑模式", MsgBoxStyle.Information Or MsgBoxStyle.OkOnly, "提示信息")
End If
End Sub
Private Sub bindNavRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavRefresh.Click
SourRefresh()
End Sub
Private Sub CombClass_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CombClass.SelectionChangeCommitted
sql = "select 学号,姓名,性别,班级,身份证号,电话,籍贯,政治面貌,父亲,母亲,地址,备注 from StuInfo_View where 班级='" & CombClass.Text & "'"
SqlCmd()
SqlStuInfo()
StuInfoDataView()
End Sub
Private Sub bindNavAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindNavAdd.Click
NewStuForm.ShowDialog()
End Sub
End Class
本文来源:http://blog.csdn.net/dollybol/archive/2007/08/12/1739372.aspx