private void AddTree(int parentid,TreeNode pnode,DataSet ds,string tbname)
{
DataView dvTree = new DataView(ds.Tables[tbname]);
dvTree.RowFilter = "[ParentID] = "+parentid; foreach(DataRow row in dvTree)
{
if(pnode ==null)
{
TreeNode node = new TreeNode();
node.Text = row["CategoryName"].ToString();
TreeView1.Nodes.Add(node);
AddTree(int.Parse(row["CategoryID"].ToString()),node,ds,tbname);
}
else
{
TreeNode node = new TreeNode();
node.Text = row["CategoryName"].ToString(); pnode.Nodes.Add(node);
AddTree(int.Parse(row["CategoryID"].ToString()),node,ds,tbname);
}
}
}
出问题了:
指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
行 38: dvTree.RowFilter = "[ParentID] = "+parentid;
行 39:
行 40: foreach(DataRow row in dvTree) //红字显示
行 41: {
行 42: if(pnode ==null)
源文件: e:\my job\truly2\manager\controls\frameset_left.aspx.cs 行: 40 堆栈跟踪:
[InvalidCastException: 指定的转换无效。]
Truly2.Manager.Controls.Frameset_Left.AddTree(Int32 parentid, TreeNode pnode, DataSet ds, String tbname) in e:\my job\truly2\manager\controls\frameset_left.aspx.cs:40
Truly2.Manager.Controls.Frameset_Left.Page_Load(Object sender, EventArgs e) in e:\my job\truly2\manager\controls\frameset_left.aspx.cs:31
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
{
DataView dvTree = new DataView(ds.Tables[tbname]);
dvTree.RowFilter = "[ParentID] = "+parentid; foreach(DataRow row in dvTree)
{
if(pnode ==null)
{
TreeNode node = new TreeNode();
node.Text = row["CategoryName"].ToString();
TreeView1.Nodes.Add(node);
AddTree(int.Parse(row["CategoryID"].ToString()),node,ds,tbname);
}
else
{
TreeNode node = new TreeNode();
node.Text = row["CategoryName"].ToString(); pnode.Nodes.Add(node);
AddTree(int.Parse(row["CategoryID"].ToString()),node,ds,tbname);
}
}
}
出问题了:
指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
行 38: dvTree.RowFilter = "[ParentID] = "+parentid;
行 39:
行 40: foreach(DataRow row in dvTree) //红字显示
行 41: {
行 42: if(pnode ==null)
源文件: e:\my job\truly2\manager\controls\frameset_left.aspx.cs 行: 40 堆栈跟踪:
[InvalidCastException: 指定的转换无效。]
Truly2.Manager.Controls.Frameset_Left.AddTree(Int32 parentid, TreeNode pnode, DataSet ds, String tbname) in e:\my job\truly2\manager\controls\frameset_left.aspx.cs:40
Truly2.Manager.Controls.Frameset_Left.Page_Load(Object sender, EventArgs e) in e:\my job\truly2\manager\controls\frameset_left.aspx.cs:31
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
解决方案 »
- 如何实现网站中电子书的在线阅读及下载
- 如何使用httphandler过滤某些文字 在线等
- DetailsView只在插入的时候显示默认值
- 判断用户是否已经登录,在HTML页面怎么内钳套<% %> 不可用了
- 崩溃,asp.net2.0中自定义用户控件事件丢失问题.思归,孟子,江湖救急...
- 有的新闻系统就一个后台页,只不过url传的参数不同!如何实现?
- 小弟,有一个简单的问题请教!!!
- 求关闭现有窗口,打开新窗口的javascript的代码
- 文件名(中文)太长就无法下载?100分
- ASP.NET Session以及浏览器关闭的问题
- 问个一次了,没人答,求高人指点。DataGrid点击某行,不要刷新,把改行中某列的值写到页面上的textbox里面。
- 问大家一个简单的问题!
foreach(DataRow row in dvTree) --->foreach(DataRowView row in dvTree)
DataView是可枚举的类,你可以安全的将它传给For..Each语句。