树型目录树的一个小问题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
请兄弟指教如何改啊!!
...全文
43 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复

兄弟在线等待!!!


62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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