vb.net一道实训题(显示班级学生信息的(用类实现))

Gangelwn 2008-12-08 10:09:11
设计一个窗体,在一个列表框中显示班级,在另一个列表框中显示某班的的学生姓名,在选定某个学生姓名后
文本框中显示该学生籍贯和电话号码,并在标签框中显示学生的属相(利用类实现)


请各位多多帮忙指点。。。。
谢谢!!!
...全文
365 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
katrina1234 2008-12-10
  • 打赏
  • 举报
回复
谢谢.我参考一下.
katrina1234 2008-12-10
  • 打赏
  • 举报
回复
是不是用绑定的话都要前面的一堆申明?

要imports 什么东西吗?
mohongmao 2008-12-09
  • 打赏
  • 举报
回复
这些都是很简单的啦,你去下载基础的代码来看看吧,对你很有帮助

http://blog.csdn.net/mohongmao/category/490696.aspx?PageNumber=5

Gangelwn 2008-12-09
  • 打赏
  • 举报
回复
谢谢你的回答!!
对你写的代码不是很懂。。。没学到datatable
我学的那本书知识点不全面
按题目的意思是用两个列表框分别显示班级和学生姓名的
用类实现
Gosp5 2008-12-09
  • 打赏
  • 举报
回复
我来了, 不好意思.
来晚了。..

先声明一下, 如果以下代码有问题的话你看一下.NET参照.
没有参照的话,就先设置.

**********************************************************************************
*****连接Access****************************************
**********************************************************************************
这是没有用户名和密码,直接连接Access的.如果要用户名和密码就自己设置一下.

Private dbConnection As OleDb.OleDbConnection

Public Function ConnectionOpen()

Try

Dim dbConnectionString As String

dbConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source=" _
& "c:\XXXXX\XXXXX.mdb;" _
& "Persist Security Info=true"

dbConnection = New OleDb.OleDbConnection(dbConnectionString)

dbConnection.Open()

Return dbConnection

Catch ex As Exception
Return False
End Try

End Function

Public Function ConnectionClose()

Try

dbConnection.Close()
dbConnection.Dispose()

Return dbConnection

Catch ex As Exception
Return False
End Try

End Function

Public Function getSqlData(ByVal strSQL As String) As DataSet

Dim dataSet As New DataSet
Dim DataAdapter As New OleDb.OleDbDataAdapter

DataAdapter.SelectCommand = New OleDb.OleDbCommand(strSQL, dbConnection)

Try
DataAdapter.Fill(dataSet, "Table")
Catch Ex As Exception
MsgBox(Err.Description)
Finally
dataSet.Dispose()
DataAdapter.Dispose()
'dbConnection.Close()
'dbConnection.Dispose()
End Try

Return dataSet

End Function
**********************************************************************************
**********************************************************************************

实用例:

Private ConnDB As New ConnectionDB

Dim strSQL As String = ""
Dim dtData As DataSet

Try

ConnDB.ConnectionOpen()

strSQL = "select * from Maintable"
dtData = ConnDB.getSqlData(strSQL)

ConnDB.ConnectionClose()

这时的dtData已经是取得数据之后的table.
之后你想怎么做就该怎么做.


祝你好运!!~~~~~   ^^
katrina1234 2008-12-09
  • 打赏
  • 举报
回复
谢谢楼上的,你真是热心..
Gosp5 2008-12-09
  • 打赏
  • 举报
回复
能阿。
具体的我回家,把代码写上去。 好吗?
6点半左右我发上来。
katrina1234 2008-12-09
  • 打赏
  • 举报
回复
能不能直接和Access连用啊,这样一个一个的加进去,很累的,
Gosp5 2008-12-09
  • 打赏
  • 举报
回复
改为
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'班级
Dim tblBanji As New DataTable
tblBanji.Columns.Add("Banji", Type.GetType("System.String"))
tblBanji.Rows.Add(tblBanji.NewRow)
tblBanji.Rows(0).Item("Banji") = "1年1班"
tblBanji.Rows.Add(tblBanji.NewRow)
tblBanji.Rows(1).Item("Banji") = "1年2班"
tblBanji.Rows.Add(tblBanji.NewRow)
tblBanji.Rows(2).Item("Banji") = "1年3班"
tblBanji.Rows.Add(tblBanji.NewRow)
tblBanji.Rows(3).Item("Banji") = "1年4班"

'画面上显示
DataGridView1.DataSource = tblBanji

End Sub
Gosp5 2008-12-09
  • 打赏
  • 举报
回复
因为不是循环,所以每行都要加
tblBanji.Rows.Add(tblBanji.NewRow) 这句
katrina1234 2008-12-09
  • 打赏
  • 举报
回复
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'班级
Dim tblBanji As New DataTable
tblBanji.Columns.Add("Banji", Type.GetType("System.String"))
tblBanji.Rows.Add(tblBanji.NewRow)
tblBanji.Rows(0).Item("Banji") = "1年1班"
tblBanji.Rows(1).Item("Banji") = "1年2班"
tblBanji.Rows(2).Item("Banji") = "1年3班"
tblBanji.Rows(3).Item("Banji") = "1年4班"

'画面上显示
DataGridView1.DataSource = tblBanji

End Sub

显示错误.
Gosp5 2008-12-09
  • 打赏
  • 举报
回复
也可以用构造体来实现。

Public Structure student
Public banji As String
Public name As String
Public jiguan As String
Public tel As String
Public birday As String
End Structure



Dim student1() As student
'初期化
ReDim student1(0)

student1(0).banji = "XXXXXXXXXXXXX"
student1(0).name = "XXXXXXXXXXXXX"
student1(0).jiguan = "XXXXXXXXXXXXX"
student1(0).tel = "XXXXXXXXXXXXX"
student1(0).birday = "XXXXXXXXXXXXX"
水如烟 2008-12-09
  • 打赏
  • 举报
回复
这道题不错呀.现在老师给的答案是怎样的呢?
katrina1234 2008-12-09
  • 打赏
  • 举报
回复
我也是初学者,学习了...
Gosp5 2008-12-09
  • 打赏
  • 举报
回复
刚刚给你编的。
画面上需要2个DataGridView,1个TextBox
DataGridView是.Net自带的。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'班级
Dim tblBanji As New DataTable
tblBanji.Columns.Add("Banji", Type.GetType("System.String"))
tblBanji.Rows.Add(tblBanji.NewRow)
tblBanji.Rows(0).Item("Banji") = "1年1班"
tblBanji.Rows(1).Item("Banji") = "1年2班"
tblBanji.Rows(2).Item("Banji") = "1年3班"
tblBanji.Rows(3).Item("Banji") = "1年4班"

'画面上显示
DataGridView1.DataSource = tblBanji

End Sub

Private Sub DataGridView1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged

'选择标题行,不做处理
If DataGridView1.CurrentCell Is Nothing Then
Exit Sub
End If
'最后一行不做处理
If IsDBNull(DataGridView1.CurrentCell.Value) Then Exit Sub

If DataGridView1.CurrentCell.Value.Equals("1年1班") Then
Dim tblName As New DataTable
tblName.Columns.Add("Name", Type.GetType("System.String"))
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(0).Item("Name") = "張1"
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(1).Item("Name") = "李1"
DataGridView2.DataSource = tblName
End If

If DataGridView1.CurrentCell.Value.Equals("1年2班") Then
Dim tblName As New DataTable
tblName.Columns.Add("Name", Type.GetType("System.String"))
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(0).Item("Name") = "張2"
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(1).Item("Name") = "李2"
DataGridView2.DataSource = tblName
End If

If DataGridView1.CurrentCell.Value.Equals("1年3班") Then
Dim tblName As New DataTable
tblName.Columns.Add("Name", Type.GetType("System.String"))
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(0).Item("Name") = "張3"
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(1).Item("Name") = "李3"
DataGridView2.DataSource = tblName
End If

If DataGridView1.CurrentCell.Value.Equals("1年4班") Then
Dim tblName As New DataTable
tblName.Columns.Add("Name", Type.GetType("System.String"))
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(0).Item("Name") = "張4"
tblName.Rows.Add(tblName.NewRow)
tblName.Rows(1).Item("Name") = "李4"
DataGridView2.DataSource = tblName
End If

'最后一行,不显示。
DataGridView1.AllowUserToAddRows = False

End Sub

Private Sub DataGridView2_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView2.SelectionChanged

'选择标题行,不做处理
If DataGridView1.CurrentCell Is Nothing Then
Exit Sub
End If
'最后一行不做处理
If IsDBNull(DataGridView1.CurrentCell.Value) Then Exit Sub

If DataGridView2.CurrentCell.Value.Equals("选择的学生姓名") Then
Me.textBox1.Text = "姓名:" & "XXXXXXXXX" & vbCrLf
Me.textBox1.Text = "籍贯:" & "XXXXXXXXX" & vbCrLf
Me.textBox1.Text = "电话号码:" & "XXXXXXXXX" & vbCrLf
End If

***************************
根据学生的情况可以多加几个判断。
***************************

'最后一行,不显示。
DataGridView1.AllowUserToAddRows = False

End Sub
Gangelwn 2008-12-09
  • 打赏
  • 举报
回复

谁可以帮忙解决这个问题啊?我是个初学者
不知道这个类怎么定义。。。然后初始化类对象,。。
要构造几个班级,然后为每个班级添加学生信息(姓名,籍贯,电话号码,出生日期)
我会用c++初始化类,构造类对象赋值,,但用vb。net却不知道怎么写?
请问怎么初始化这些班级学生信息

谢谢。。。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBox1.Items.Add("一班")
ListBox1.Items.Add("二班")
ListBox1.Items.Add("三班")
End Sub

Class student
Public banji As String
Public name As String
Public jiguan As String
Public tel As Integer
Public birday As Date
Public Sub New()

End Sub

End Class

End Class
tanghuiming 2008-12-08
  • 打赏
  • 举报
回复
LZ应该从最基础的开始学起,打好基础.
chuxue1342 2008-12-08
  • 打赏
  • 举报
回复
类似selectItemChanged事件里面绑定数据不就好了吗?
bw555 2008-12-08
  • 打赏
  • 举报
回复
题目说明已经很清楚了

设计一个窗体, --新建一个窗体,添加两个列表,两个文本框和一个标签框
在一个列表框中显示班级, --在form_load中,向列表加入班级列表
在另一个列表框中显示某班的的学生姓名,--在班级列表的listchanged事件中,刷新学生列表
在选定某个学生姓名后 --在学生列表的listchanged事件中,刷新文本框和标签框
文本框中显示该学生籍贯和电话号码,并在标签框中显示学生的属相(利用类实现)
Gangelwn 2008-12-08
  • 打赏
  • 举报
回复
谁能给我一点思路做这个题啊。。。
这两天要交了
最好能提供简洁的代码。。。供我参考一下啊!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧