语法错误:“0”运算符后缺少操作数。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SyntaxErrorException: 语法错误:“0”运算符后缺少操作数。源错误:
行 52: string intId;
行 53: dv.Table = ds.Tables["tree"];
行 54: dv.RowFilter = "ParentId=''" + parentId+ "''";
行 55: foreach(DataRowView drv in dv)
行 56: {
堆栈跟踪:
[SyntaxErrorException: 语法错误:“0”运算符后缺少操作数。]
System.Data.ExpressionParser.Parse() +2753
System.Data.DataExpression..ctor(String expression, DataTable table, Type type) +149
System.Data.DataView.set_RowFilter(String value) +151
collection.textmenu.InitTree(TreeNodeCollection Nds, String parentId) in e:\瑞博藏品信息管理系统\代码\collection\textmenu.aspx.cs:54
collection.textmenu.Page_Load(Object sender, EventArgs e) in e:\瑞博藏品信息管理系统\代码\collection\textmenu.aspx.cs:34
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;
using Microsoft.Web.UI.WebControls;namespace collection
{
/// <summary>
/// textmenu 的摘要说明。
/// </summary>
public class textmenu : System.Web.UI.Page
{
SqlConnection Conn;
SqlDataAdapter myCmd;
DataSet ds;
protected Microsoft.Web.UI.WebControls.TreeView tvmenu;
string cmdSelect;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//连接数据库,设置连接属性
Conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectString"]);
CreateDataSet();
InitTree(tvmenu.Nodes,"0");
}
//建立数据集
private DataSet CreateDataSet()
{
cmdSelect = "select * from S_Menu";
//设置myCmd命令
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.NavigateUrl = "../"+drv["Address"].ToString();
Nds.Add(tmpNd);
intId = drv["ParentId"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID); }
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SyntaxErrorException: 语法错误:“0”运算符后缺少操作数。源错误:
行 52: string intId;
行 53: dv.Table = ds.Tables["tree"];
行 54: dv.RowFilter = "ParentId=''" + parentId+ "''";
行 55: foreach(DataRowView drv in dv)
行 56: {
堆栈跟踪:
[SyntaxErrorException: 语法错误:“0”运算符后缺少操作数。]
System.Data.ExpressionParser.Parse() +2753
System.Data.DataExpression..ctor(String expression, DataTable table, Type type) +149
System.Data.DataView.set_RowFilter(String value) +151
collection.textmenu.InitTree(TreeNodeCollection Nds, String parentId) in e:\瑞博藏品信息管理系统\代码\collection\textmenu.aspx.cs:54
collection.textmenu.Page_Load(Object sender, EventArgs e) in e:\瑞博藏品信息管理系统\代码\collection\textmenu.aspx.cs:34
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;
using Microsoft.Web.UI.WebControls;namespace collection
{
/// <summary>
/// textmenu 的摘要说明。
/// </summary>
public class textmenu : System.Web.UI.Page
{
SqlConnection Conn;
SqlDataAdapter myCmd;
DataSet ds;
protected Microsoft.Web.UI.WebControls.TreeView tvmenu;
string cmdSelect;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//连接数据库,设置连接属性
Conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectString"]);
CreateDataSet();
InitTree(tvmenu.Nodes,"0");
}
//建立数据集
private DataSet CreateDataSet()
{
cmdSelect = "select * from S_Menu";
//设置myCmd命令
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.NavigateUrl = "../"+drv["Address"].ToString();
Nds.Add(tmpNd);
intId = drv["ParentId"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID); }
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货