小弟请教各位高手,关于vb连接oracle数据库 ,datagrid、adodc控件的使用问题,在线等。
vb连接oracle数据库,数据库服务器名是gjss1,数据库名也是gjss1,ip是10.96.128.11,用户名是123,密码是123。如果我用ODBC连接数据库,...
vb连接oracle数据库,数据库服务器名是gjss1,数据库名也是gjss1,ip是10.96.128.11,用户名是123,密码是123。如果我用ODBC连接数据库,在vb中用datagrid和adodc控件连接,连接成功后在代码中执行SQL语句:select t.* from xcomrun.receivedmessagebufferlog t where t.processflag =3 。把查询到的满足条件的字段显示在datagrid中,要求程序实时动态更新datagrid的内容,一有满足条件的记录,马上弹出警告的对话框。请写出需要用到的控件、做法和具体的程序代码。万分感激。。。
展开
3个回答
展开全部
你这个例子用msflexgrid比用datagrid要好,按你要求给你一个思路你可以试试
先在部件里添加Mircosoft flex grid control 6.0,然后把这个表格画在form里,然后按照数据库里表面的字段数为你的表头命名,例如:
Public Sub setgridhead()
For I = 0 To 5
MSFlexGrid1.ColAlignment(I) = flexAlignCenterCenter
Next
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "序号" '第0行第0列为“编号”
'MSFlexGrid1.CellBackColor = &HFF00&
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "姓名" '第1行第1列为“姓名”
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "年级" '第0行第2列为“年级”
'MSFlexGrid1.CellBackColor = &H8080FF
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "班级" '第0行第3列为“班级”
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "学科" '第0行第4列为“学科”
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = "成绩" '第0行第5列为“成绩”
'MSFlexGrid1.CellBackColor = &H8080FF
Exit Sub
setgridheaderror:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
然后设置你的表格的行数和行高
Public Sub setgrid() '设置表格子程序
Dim I As Integer
On Error GoTo setgriderror
MSFlexGrid1.ScrollBars = 2
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.Rows = 2 '设置总行数,目前为2,你可以根据自己的要求设定行数
'MSFlexGrid11.Cols = col_num '设置总列数
'MSFlexGrid11.Rows = 10
MSFlexGrid1.Cols = 6 '这里一共6列
MSFlexGrid1.SelectionMode = 0
For I = 0 To 1
MSFlexGrid1.RowHeight(I) = 400 '设置每行高度
Next
MSFlexGrid1.ColWidth(0) = 500 '第一列宽度
MSFlexGrid1.ColWidth(1) = 1000 '第二列宽度
MSFlexGrid1.ColWidth(2) = 1000 '第三列宽度
MSFlexGrid1.ColWidth(3) = 500 '第四列宽度
MSFlexGrid1.ColWidth(4) = 1000 '第五列宽度
MSFlexGrid1.ColWidth(5) = 2550 '第六列宽度
Exit Sub
setgriderror: '错误处理
If Err.Number <> 0 Then
MsgBox Err.Description '显示错误信息
End If
End Sub
然后在form_load事件里调用这两个过程
Private Sub Form_Load()
setgrid
setgridhead
conndb '连接数据库
End Sub
这样你的表格就做好了,下面完成连接数据库的工作
要用vb连接oracle数据库需要先安装一个oracle9i client,你上网查查就行“Oracle9i客户端精简版”,安装好后就可以连接Oracle了。
下面给你一个连接数据库的子程序,你需要建立一个模块把它们复制进去:
Public mycon As New ADODB.Connection
Public Function conndb()
Dim rst As ADODB.Recordset
Set mycon = New ADODB.Connection
mycon.ConnectionString = connstring
mycon.Open
End Function
Public Function connstring() As String '打开数据库
connstring = " Provider=OraOLEDB.Oracle.1;" _
& " Password=123;User ID=123;" _
& " Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) " _
& " (HOST =10.96.128.11)(PORT=1521)))" _
& " (CONNECT_DATA=(SERVICE_NAME=gjss1)));" _
& " Persist Security Info=True "
' .ConnectionString = " Provider=MSDAORA.1;"
End Function
现在连接上数据库了,你就可以进行表查询了,但要实现你说的时时更新,还需要放一个timer在上面,把里面的Interval属性设置为10000,这样就会10秒钟一更新,双击timer控件,在里面加入如下代码
Private Sub Timer1_Timer()
sql="select t.* from xcomrun.receivedmessagebufferlog t where t.processflag =3"
dim rs adodb.recodeset
rs.Open Trim(sql), mycon, adOpenKeyset, adLockOptimistic
displaydata '显示查询内容的子程序
End Sub
Public Sub displaydata()
For i = 0 To rs.RecordCount - 1
MSFlexGrid1.Row = i + 1
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = i + 1
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Trim(rs("字段1"))
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Trim(rs("字段2"))
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = Trim(rs("字段3"))
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = Trim(rs("字段4"))
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = Trim(rs("字段5"))
Next
End Sub
好了,万事大吉,你试试吧,祝你好运
先在部件里添加Mircosoft flex grid control 6.0,然后把这个表格画在form里,然后按照数据库里表面的字段数为你的表头命名,例如:
Public Sub setgridhead()
For I = 0 To 5
MSFlexGrid1.ColAlignment(I) = flexAlignCenterCenter
Next
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "序号" '第0行第0列为“编号”
'MSFlexGrid1.CellBackColor = &HFF00&
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "姓名" '第1行第1列为“姓名”
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "年级" '第0行第2列为“年级”
'MSFlexGrid1.CellBackColor = &H8080FF
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "班级" '第0行第3列为“班级”
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "学科" '第0行第4列为“学科”
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = "成绩" '第0行第5列为“成绩”
'MSFlexGrid1.CellBackColor = &H8080FF
Exit Sub
setgridheaderror:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
然后设置你的表格的行数和行高
Public Sub setgrid() '设置表格子程序
Dim I As Integer
On Error GoTo setgriderror
MSFlexGrid1.ScrollBars = 2
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.Rows = 2 '设置总行数,目前为2,你可以根据自己的要求设定行数
'MSFlexGrid11.Cols = col_num '设置总列数
'MSFlexGrid11.Rows = 10
MSFlexGrid1.Cols = 6 '这里一共6列
MSFlexGrid1.SelectionMode = 0
For I = 0 To 1
MSFlexGrid1.RowHeight(I) = 400 '设置每行高度
Next
MSFlexGrid1.ColWidth(0) = 500 '第一列宽度
MSFlexGrid1.ColWidth(1) = 1000 '第二列宽度
MSFlexGrid1.ColWidth(2) = 1000 '第三列宽度
MSFlexGrid1.ColWidth(3) = 500 '第四列宽度
MSFlexGrid1.ColWidth(4) = 1000 '第五列宽度
MSFlexGrid1.ColWidth(5) = 2550 '第六列宽度
Exit Sub
setgriderror: '错误处理
If Err.Number <> 0 Then
MsgBox Err.Description '显示错误信息
End If
End Sub
然后在form_load事件里调用这两个过程
Private Sub Form_Load()
setgrid
setgridhead
conndb '连接数据库
End Sub
这样你的表格就做好了,下面完成连接数据库的工作
要用vb连接oracle数据库需要先安装一个oracle9i client,你上网查查就行“Oracle9i客户端精简版”,安装好后就可以连接Oracle了。
下面给你一个连接数据库的子程序,你需要建立一个模块把它们复制进去:
Public mycon As New ADODB.Connection
Public Function conndb()
Dim rst As ADODB.Recordset
Set mycon = New ADODB.Connection
mycon.ConnectionString = connstring
mycon.Open
End Function
Public Function connstring() As String '打开数据库
connstring = " Provider=OraOLEDB.Oracle.1;" _
& " Password=123;User ID=123;" _
& " Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) " _
& " (HOST =10.96.128.11)(PORT=1521)))" _
& " (CONNECT_DATA=(SERVICE_NAME=gjss1)));" _
& " Persist Security Info=True "
' .ConnectionString = " Provider=MSDAORA.1;"
End Function
现在连接上数据库了,你就可以进行表查询了,但要实现你说的时时更新,还需要放一个timer在上面,把里面的Interval属性设置为10000,这样就会10秒钟一更新,双击timer控件,在里面加入如下代码
Private Sub Timer1_Timer()
sql="select t.* from xcomrun.receivedmessagebufferlog t where t.processflag =3"
dim rs adodb.recodeset
rs.Open Trim(sql), mycon, adOpenKeyset, adLockOptimistic
displaydata '显示查询内容的子程序
End Sub
Public Sub displaydata()
For i = 0 To rs.RecordCount - 1
MSFlexGrid1.Row = i + 1
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = i + 1
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Trim(rs("字段1"))
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Trim(rs("字段2"))
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = Trim(rs("字段3"))
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = Trim(rs("字段4"))
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = Trim(rs("字段5"))
Next
End Sub
好了,万事大吉,你试试吧,祝你好运
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-11-24
展开全部
哈哈哈哈我不会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-11-24
展开全部
hgjkhjhjjhjhjhjhjhjhjhjhjhjhjjhjhjhjhjhjhjhjhjhjhjhjhjhjhj
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询