一个关于数据库的问题

WANGDATAN 2003-05-20 03:23:41
我用vb6.0+SQL Server 2000 作一个成绩管理系统
在数据库里有个成绩表我是这样设计的依次有这样几项
学号,姓名,课程名,成绩,说明
现在我想在一个控件里显示这样效果:
每一行显示一个学生的“学号”,“姓名”,还有各门功课的成绩
例如:
学号 姓名 大学语文 普通物理 线性代数 ........
2000123 李某 78 89 67 .......
. . . . . .
. . . . . .
用什么控件比较好一点是datagrid 还是Msflexgrid 好一点
那位大哥教教小弟看应该怎么做,最好是详细一点
...全文
48 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bopite 2003-05-21
这样可以吗?先填加表头,也就是上面的各个字段名
dim cnn as adodb.connection
cnn.open".........数据库"
dim mrc as adodb.recordset
mrc.open"select ......",cnn
MSFlexGrid1.Rows = mrc.RecordCount + 1
If mrc.RecordCount = 0 Then
MSFlexGrid1.Rows = 2
End If
MSFlexGrid1.Cols = mrc.Fields.Count
MSFlexGrid1.FixedRows = 1
For i = 0 To mrc.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = mrc.Fields(i).Name
Next i
到这里表头就填加好了。接下来就是往表里填加数据了
If mrc.EOF = False Then
With MSFlexGrid1
.Rows = 1
Do While Not mrc.EOF
.Rows = .Rows + 1
For i = 0 To mrc.Fields.Count - 1
.TextMatrix(.Rows - 1, i) = mrc.Fields(i) & ""
Next i
mrc.MoveNext
Loop
End With
End If
这下你该满足了吧
再有问题我帮你顶
MSFLEXGRID不能个性的问题也好办你只需加上以下代码就OK
先在通用里面声明如下两下变量
dim wgridcol%,wgridrow%
Private Sub msflexgrid1_RowColChange()
WgridCol% = MSFlexGrid1.Col
WgridRow% = MSFlexGrid1.Row
End Sub

Private Sub msflexgrid1_KeyPress(KeyAscii As Integer)
MSFlexGrid1.Col = WgridCol%
MSFlexGrid1.Row = WgridRow%
If KeyAscii = 8 Then 'keyascii=8为退格删除键
If MSFlexGrid1.Text <> "" Then MSFlexGrid1.Text = Mid$(MSFlexGrid1.Text, 1, Len(MSFlexGrid1.Text) - 1) '除最后一个字符
Else
MSFlexGrid1.Text = MSFlexGrid1.Text + Chr$(KeyAscii)
End If
End Sub
有了上面的代码一样也可能在表里面填加删除修改。。。。。。。。。

回复
xiaoxingchi 2003-05-21
用listview比较直观,看起来比较好看。
用其它的数据库组件也有好处,一般要看你的数据量大不大,如果很大的话,还是用datagrid比较好,比较少的话,用listview比较好看。个人观点!
回复
lgxysl 2003-05-21
为什么不直接用ADO呢?直接用ADO的优点是:移植性好,不用改代码,只要改数据库的连接就可以改用其他数据库,如access等等。
回复
WANGDATAN 2003-05-21
谢谢各位提点
该问题已经解决
现在又有个新问题
我已经开贴希望那位仁兄不吝赐教,继续帮助我
http://expert.csdn.net/Expert/topic/1813/1813947.xml?temp=.2555963
回复
sea026 2003-05-21
错了,
With MSFlexGrid1
i = 2
i = i+ 1
.TextMatrix( 2, i) = mrcData.Fields(成绩)
if not mrcData.Eof then
mrcData.MoveNext
else
exit sub
end if
回复
sea026 2003-05-21
到这里表头就填加好了。接下来就是往表里填加数据了
dim mrcData as adodb.recordset
mrcData.open"select ......where name=@name",cnn
If not mrcData.EOF Then
With MSFlexGrid1
.Rows = 1
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, i) = mrcData.Fields(i) & ""
if not mrcData.Eof then
mrcData.MoveNext
else
exit sub
end if
End With
End If

如果你会写存储过程就更简单了。
回复
reddg 2003-05-20
sql="select * from table order by student_id"
rst.open sql,conn,1,3
set dtgrid.datasource=rst
dtgrid.refresh

回复
doudoushen 2003-05-20
在fixedcols 和fixedrows都等于一 martrixtext(0,1)=student-id matrixtext(0,2)=student-name ....

照这样做 不知道对你有用吗
回复
WANGDATAN 2003-05-20
还没搞懂我的意思
我的意思是我的数据库是这样的:
第一个字段 student_ID
第二个字段 student_name
第三个字段 course_name
第四个字段 chenji
在数据库里是这样显示的:
student_id student_name course_name chenji
2003445 李某 大学语文 78
2003446 王某 大学物理 76



我现在想在一个datagrid或者mshflexgrid显示象我题目所描述的那种效果
请问应该怎么做?????????????????
回复
馮強 2003-05-20
select xh as 学号,xm as 姓名,Chinese as 大学语文,... from table where...

楼主不就是要显示字段标题吗?用as语句搞定。
回复
WANGDATAN 2003-05-20
我不是想知道哪个控件功能强大
而是想知道究竟应该怎样用SQL语句来实现
我说的那种效果
可能我开始问问题的时候没说清楚
搞的大家把问题的重心搞错了
现在纠正
回复
hulianchi 2003-05-20
Msflexgrid 功能强大些

回复
WANGDATAN 2003-05-20
能不能教我怎样写这一段SQL代码
回复
WANGDATAN 2003-05-20
用datagrid应该怎么做啊
回复
fraser01 2003-05-20
两个都可以,就是编辑的时候MSFLEX麻烦点。
如果想更好点的话,建议用其他的表格控件,如SPREAD,或者VASpread可以直接编辑
接受很多额外的功能。
回复
lxcc 2003-05-20
差不多!个人喜好!
datagrid支持和ado绑定,可以直接修改数据库,也可以在单元格内直接编辑
mshflexgrid也支持与ado绑定,但是不支持直接修改数据库和直接编辑
回复
lihonggen0 2003-05-20
datagrid

或者

mshflexgrid
回复
龙华 2003-05-20
选一个图片做窗体背景。表格画在上面。
文字内容从数据库读出来,显示在窗体上特定位置(透明lable上)就可以了。这样比较简单,效果也不错。
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
VB基础类
创建于2007-09-28

7492

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-20 03:23
社区公告
暂无公告