树型目录树的一个小问题dv.Table = ds.Tables("tree") 报错!!

maozhou 2004-05-05 09:49:47
建树的基本思路是:从根节点开始递归调用显示子树

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreateDataSet()
intiTree(TreeView1.Nodes, 0)
End Sub
Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As Integer)
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As TreeNode
Dim intId As Integer
dv.Table = ds.Tables("tree") 在这儿报错:未将对象引用设置到对象的实例
dv.RowFilter = "PARENTID=’" & parentId & "’"
For Each drv In dv
tmpNd = New TreeNode()
strId = drv("NODE_ID")
tmpNd.ID = strId
tmpNd.Text = drv("NODE_NAME ")
tmpNd.ImageUrl = drv("ICON").ToString
Nds.Add(tmpNd)
intiTree(Nds(Nds.Count - 1).Nodes, intId)
Next
End Sub
请兄弟指教如何改啊!!
...全文
25 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
maozhou 2004-05-05
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
createdataset()
intiTree(TreeView1.Nodes, 0)

End Sub
Private Sub createdataset()
Dim conn As New OleDbConnection("provide=daraora;datasource=ora8;use id=sa;password=sa")
Dim DA As New OleDbDataAdapter("select * from TBTREE", conn)
conn.Open()
Dim DS As New DataSet()
DA.Fill(DS, " TREE")

End Sub
Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As Integer)
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As TreeNode
Dim intId As Integer
Dim DS As New DataSet()
dv.Table = DS.Tables("TREE")
dv.RowFilter = "PARENTID=’" & parentId & "’"
For Each drv In dv
tmpNd = New TreeNode()

tmpNd.ID = drv("NODE_ID")
tmpNd.Text = drv("NODE_NAME ")
tmpNd.ImageUrl = drv("ICON").ToString
Nds.Add(tmpNd)
intiTree(Nds(Nds.Count - 1).Nodes, intId)
Next
End Sub
End Class

  • 打赏
  • 举报
回复
csdn5201 2004-05-05
你看一下有没有在Dataset中存在名为tree的表呀?
  • 打赏
  • 举报
回复
maozhou 2004-05-05
连接数据库的代码写在load里面
  • 打赏
  • 举报
回复
catheart 2004-05-05
报错说明你的dv.Table里面没有获得值,你查看一下ds.Tables("tree")是否存在吧,我都没有看到你的ds在哪里
  • 打赏
  • 举报
回复
maozhou 2004-05-05
是在asp.net里用vb写的
  • 打赏
  • 举报
回复
maozhou 2004-05-05
我的这段代码是从网上down的比较经典
楼上给的这段和我的一个样
想兄弟看看为啥出错,
dv.Table = ds.Tables("tree") 在这儿报错:未将对象引用设置到对象的实例

我没改出来
  • 打赏
  • 举报
回复
xjshuaishuai 2004-05-05
给个列子:
SqlConnection Conn;
SqlDataAdapter myCmd;
DataSet ds;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
string cmdSelect;
private void Page_Load(object sender, System.EventArgs e)
{

string strConn="server=data;uid=sa;pwd=;database=run1";
Conn=new SqlConnection(strConn);
Conn.Open();
CreateDataSet();
InitTree(TreeView1.Nodes,"0");
// 在此处放置用户代码以初始化页面
}
private DataSet CreateDataSet()
{
cmdSelect="select * from tree";
myCmd=new SqlDataAdapter(cmdSelect,Conn);
ds=new DataSet();
myCmd.Fill(ds,"tree");
return ds;

}
private void InitTree(TreeNodeCollection Nds,string parentid)
{
DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["tree"];
dv.RowFilter="ParentId='" + parentid + "'" ;
foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
tmpNd.ID=drv["nodeid"].ToString();
tmpNd.Text=drv["nodename"].ToString();
tmpNd.ImageUrl="images/"+drv["icon"].ToString();
tmpNd.Target="main";
if(Convert.ToInt32(drv["parentid"])!=0)
{
tmpNd.NavigateUrl=drv["address"].ToString();
}
Nds.Add(tmpNd);
intId=drv["parentid"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID);
}
}
  • 打赏
  • 举报
回复
maozhou 2004-05-05

兄弟在线等待!!!


  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-05 09:49
社区公告
暂无公告