首先我说下我的软件,就是treeview从数据库中间提取出数据到treeview中,然后点击后在右边的richtextbox里面显示,但是现在遇到的问题就是:首先看下我的数据库:
这就是数据库Type表中ID列是Content表中Content_Type列的外键约束,同时要注意下,Content表中有几个记录的ID直接是从27开始的,我的软件运行界面如下:,可以看到,我点击了记录1后,在右边没有显示任何数据,下面是我的程序代码
node——click事件Private Sub tvList_NodeClick(ByVal node As MSComctlLib.node)
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset '主要获取父节点的属性
Dim rs1 As New ADODB.Recordset
Dim mm As String
'下面是用来连接数据库的
conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123;database=Pro_learn"
conn.ConnectionTimeout = 30
conn.Open
rs1.Open "select Content_Type,Content_Title from Content", conn, adOpenStatic, adLockReadOnly, adCmdText '这个主要适用来统计信息条数的
'下面选择相应的子结点的内容填充到textbox里面
For i = 0 To rs1.RecordCount - 1
'MsgBox (rs1.RecordCount - 1)
Select Case node.Key
Case "child02" & i
j = tvList.SelectedItem.Parent.Index
mm = (node.Index - 8)
'MsgBox (mm)
' MsgBox (j)
rs.Open "select Content_Main from Content where ID='" + mm + "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If Not rs.EOF And Not rs.BOF Then
txtContent.Text = rs.Fields("Content_Main")
End If
End Select
Next i
End Sub下面是添加数据代码Private Sub cmdOK_Click()
Dim conn As New ADODB.Connection
Dim sqlCap As String
conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123;database=Pro_learn"
conn.Open
'rs.Open "insert into [Content](Content_Title,Content_Main,Content_Type) values('" + txtTitle.Text + "','" + txtContent.Text + "','" + cbType.ListIndex + 1 + "')"
sqlCap = "insert into [Content](Content_Title,Content_Main,Content_Type) values('" & txtTitle.Text & "','" & txtContent.Text & "','" & (cbType.ListIndex + 1) & "')"
conn.Execute (sqlCap)
MsgBox ("数据插入成功!")
End Sub不知道为什么,前面15条都可以正常显示,从id为27的开始都不能正常显示了,望高手指教一下,已经困扰我好长时间了
这就是数据库Type表中ID列是Content表中Content_Type列的外键约束,同时要注意下,Content表中有几个记录的ID直接是从27开始的,我的软件运行界面如下:,可以看到,我点击了记录1后,在右边没有显示任何数据,下面是我的程序代码
node——click事件Private Sub tvList_NodeClick(ByVal node As MSComctlLib.node)
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset '主要获取父节点的属性
Dim rs1 As New ADODB.Recordset
Dim mm As String
'下面是用来连接数据库的
conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123;database=Pro_learn"
conn.ConnectionTimeout = 30
conn.Open
rs1.Open "select Content_Type,Content_Title from Content", conn, adOpenStatic, adLockReadOnly, adCmdText '这个主要适用来统计信息条数的
'下面选择相应的子结点的内容填充到textbox里面
For i = 0 To rs1.RecordCount - 1
'MsgBox (rs1.RecordCount - 1)
Select Case node.Key
Case "child02" & i
j = tvList.SelectedItem.Parent.Index
mm = (node.Index - 8)
'MsgBox (mm)
' MsgBox (j)
rs.Open "select Content_Main from Content where ID='" + mm + "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If Not rs.EOF And Not rs.BOF Then
txtContent.Text = rs.Fields("Content_Main")
End If
End Select
Next i
End Sub下面是添加数据代码Private Sub cmdOK_Click()
Dim conn As New ADODB.Connection
Dim sqlCap As String
conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123;database=Pro_learn"
conn.Open
'rs.Open "insert into [Content](Content_Title,Content_Main,Content_Type) values('" + txtTitle.Text + "','" + txtContent.Text + "','" + cbType.ListIndex + 1 + "')"
sqlCap = "insert into [Content](Content_Title,Content_Main,Content_Type) values('" & txtTitle.Text & "','" & txtContent.Text & "','" & (cbType.ListIndex + 1) & "')"
conn.Execute (sqlCap)
MsgBox ("数据插入成功!")
End Sub不知道为什么,前面15条都可以正常显示,从id为27的开始都不能正常显示了,望高手指教一下,已经困扰我好长时间了
首先我说下我的软件,就是treeview从数据库中间提取出数据到treeview中,然后点击后在右边的richtextbox里面显示,但是现在遇到的问题就是:首先看下我的数据库:
这就是数据库Type表中ID列是Content表中Content_Type列的外键约束,同时要注意下,Content表中有几个记录的ID直接是从 27开始的,我的软件运行界面如下:,可以看到,我点击了记录1后,在右边没有显示任何数据,下面是我的程序代码
node——click事件Private Sub tvList_NodeClick(ByVal node As MSComctlLib.node)
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset '主要获取父节点的属性
Dim rs1 As New ADODB.Recordset
Dim mm As String
'下面是用来连接数据库的
conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123;database=Pro_learn "
conn.ConnectionTimeout = 30
conn.Open
rs1.Open "select Content_Type,Content_Title from Content ", conn, adOpenStatic, adLockReadOnly, adCmdText '这个主要适用来统计信息条数的
'下面选择相应的子结点的内容填充到textbox里面
For i = 0 To rs1.RecordCount - 1
'MsgBox (rs1.RecordCount - 1)
Select Case node.Key
Case "child02 " & i
j = tvList.SelectedItem.Parent.Index
mm = (node.Index - 8)
'MsgBox (mm)
' MsgBox (j)
rs.Open "select Content_Main from Content where ID= ' " + mm + " ' ", conn, adOpenStatic, adLockReadOnly, adCmdText
If Not rs.EOF And Not rs.BOF Then
txtContent.Text = rs.Fields( "Content_Main ")
End If
End Select
Next i
End Sub下面是添加数据代码Private Sub cmdOK_Click()
Dim conn As New ADODB.Connection
Dim sqlCap As String
conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123;database=Pro_learn "
conn.Open
'rs.Open "insert into [Content](Content_Title,Content_Main,Content_Type) values( ' " + txtTitle.Text + " ', ' " + txtContent.Text + " ', ' " + cbType.ListIndex + 1 + " ') "
sqlCap = "insert into [Content](Content_Title,Content_Main,Content_Type) values( ' " & txtTitle.Text & " ', ' " & txtContent.Text & " ', ' " & (cbType.ListIndex + 1) & " ') "
conn.Execute (sqlCap)
MsgBox ( "数据插入成功! ")
End Sub不知道为什么,前面15条都可以正常显示,从id为27的开始都不能正常显示了,望高手指教一下,已经困扰我好长时间了
吗?
rs.movenext的,但是也是没有用的,很奇怪
建议用node.Tag 来保存ID,这样程序就清晰多了
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset '主要获取父节点的属性
Dim rs1 As New ADODB.Recordset '主要获取子结点的属性'下面是用来连接数据库的
conn.ConnectionString = "Driver={sql server};server=127.0.0.1;uid=sa;pwd=123;database=Pro_learn"
conn.ConnectionTimeout = 30
conn.Open
'定义两个记录集
rs.Open "select VB_Type from Type", conn, adOpenStatic, adLockReadOnly, adCmdText
rs1.Open "select Content_Type,Content_Title from Content", conn, adOpenStatic, adLockReadOnly, adCmdText
'定义树节点的属性
tvList.ImageList = ImageList1
tvList.LineStyle = tvwTreeLines
tvList.Style = tvwTreelinesPlusMinusPictureText
'循环添加父节点
While Not rs.EOF
For k = 0 To rs.RecordCount - 1
Set nodx = tvList.Nodes.Add(, , "root" & k, rs.Fields("VB_Type"), 1)
rs.MoveNext
Next k
Wend'循环添加子结点
While Not rs1.EOF
For i = 0 To rs1.RecordCount - 1
'txtContent.Text = txtContent.Text + rs.Fields(0) + vbCrLf
Set nodx = tvList.Nodes.Add("root" & rs1.Fields("Content_Type") - 1, tvwChild, "child02" & i, rs1.Fields("Content_Title"), 3)
rs1.MoveNext
Next i
Wend
填充节点的tag属性
Set nodx = tvList.Nodes.Add("root" & rs1.Fields("Content_Type") - 1, tvwChild, "child02" & i, rs1.Fields("Content_Title"), 3
nodx.tag=rs1.Fields("id")
node_click中: mm = nodx.tag
public xx as 类型 然后 在窗体中给其赋值在另一窗体就方便读取到
就是在子窗体中添加好文章后,点击发表后,就直接能在主窗体中加载,也就是发送一个form_load()的事件消息给主窗体,这个该如何来下手
---------------Form 1 ----Private Sub Form_Load()Dim frm As New Form2
Form2.MyName = "hello world"
Form2.Show
End Sub
---------------Form 2 ----
Public MyName As StringPrivate Sub Form_Load()
MsgBox MyName
End Sub
Form2.MyName = "hello world"
Form2.Show 1MsgBox Form2.MyName
End Sub---------------Form 2 ----
Public MyName As StringPrivate Sub Form_Load()
MsgBox MyName
MyName = "sfdds"
End Sub
--------Form 1------------
Public Sub RefreshData()
MsgBox "frm1"
End SubPrivate Sub Command1_Click()
Dim frm2 As New Form2
frm2.Show
End Sub
--------Form 2------------
Private Sub Command1_Click()
Form1.RefreshData
End Sub