关于前台绑定的疑问
先贴代码:
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/managerDB.mdb"
DeleteCommand="DELETE FROM [项目阶段] WHERE [编号] = ?"
InsertCommand="INSERT INTO [项目阶段] ([项目编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法]) VALUES (<%# MAX_NUM%>, ?, ?, ?, ?, ?)"
SelectCommand="SELECT [编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法] FROM [项目阶段] WHERE [项目编号] = <%# MAX_NUM%>"[b][/b]
UpdateCommand="UPDATE [项目阶段] SET [阶段编号] = ?, [阶段目标] = ?, [目标权重] = ?, [任务描述] = ?, [实施方法] = ? WHERE [编号] = ?">
<DeleteParameters>
<asp:Parameter Name="编号" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="阶段编号" Type="Int32" />
<asp:Parameter Name="阶段目标" Type="String" />
<asp:Parameter Name="目标权重" Type="String" />
<asp:Parameter Name="任务描述" Type="String" />
<asp:Parameter Name="实施方法" Type="String" />
<asp:Parameter Name="编号" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="编号" Type="Int32" />
<asp:Parameter Name="阶段编号" Type="Int32" />
<asp:Parameter Name="阶段目标" Type="String" />
<asp:Parameter Name="目标权重" Type="String" />
<asp:Parameter Name="任务描述" Type="String" />
<asp:Parameter Name="实施方法" Type="String" />
</InsertParameters>
</asp:AccessDataSource>
主要问题是在这SelectCommand那儿,我想将后台声明的MAX_NUM绑定到前台可是提示老是提示错误如下:
语法错误 (操作符丢失) 在查询表达式 '[项目编号] = <%# MAX_NUM%>' 中。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 语法错误 (操作符丢失) 在查询表达式 '[项目编号] = <%# MAX_NUM%>' 中。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
项目编号是整形
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/managerDB.mdb"
DeleteCommand="DELETE FROM [项目阶段] WHERE [编号] = ?"
InsertCommand="INSERT INTO [项目阶段] ([项目编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法]) VALUES (<%# MAX_NUM%>, ?, ?, ?, ?, ?)"
SelectCommand="SELECT [编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法] FROM [项目阶段] WHERE [项目编号] = <%# MAX_NUM%>"[b][/b]
UpdateCommand="UPDATE [项目阶段] SET [阶段编号] = ?, [阶段目标] = ?, [目标权重] = ?, [任务描述] = ?, [实施方法] = ? WHERE [编号] = ?">
<DeleteParameters>
<asp:Parameter Name="编号" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="阶段编号" Type="Int32" />
<asp:Parameter Name="阶段目标" Type="String" />
<asp:Parameter Name="目标权重" Type="String" />
<asp:Parameter Name="任务描述" Type="String" />
<asp:Parameter Name="实施方法" Type="String" />
<asp:Parameter Name="编号" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="编号" Type="Int32" />
<asp:Parameter Name="阶段编号" Type="Int32" />
<asp:Parameter Name="阶段目标" Type="String" />
<asp:Parameter Name="目标权重" Type="String" />
<asp:Parameter Name="任务描述" Type="String" />
<asp:Parameter Name="实施方法" Type="String" />
</InsertParameters>
</asp:AccessDataSource>
主要问题是在这SelectCommand那儿,我想将后台声明的MAX_NUM绑定到前台可是提示老是提示错误如下:
语法错误 (操作符丢失) 在查询表达式 '[项目编号] = <%# MAX_NUM%>' 中。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 语法错误 (操作符丢失) 在查询表达式 '[项目编号] = <%# MAX_NUM%>' 中。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
项目编号是整形
作者: johnnyflute 发布时间: 2011-06-16
前台还写sql语句?
作者: skydemo 发布时间: 2011-06-16
MAX_NUM是共有的吗?有访问权限的
作者: xuexiaodong2009 发布时间: 2011-06-16
你这<%# MAX_NUM%>是绑定的字段值??
没有看到对<%# MAX_NUM%>的描述!
没有看到对<%# MAX_NUM%>的描述!
作者: lvyichang 发布时间: 2011-06-16
public int MAX_NUM;
MAX_NUM = int.Parse(Session["MAX_NUM"].ToString());
第一个是声明,第二个是赋值,在pageload中,SQL语句是在数据源控件中的。
我的解决办法是:
AccessDataSource1.InsertCommand = "INSERT INTO [项目阶段] ([项目编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法]) VALUES (" + MAX_NUM.ToString() + ", ?, ?, ?, ?, ?)";
AccessDataSource1.SelectCommand = "SELECT [编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法] FROM [项目阶段] WHERE [项目编号] = " + MAX_NUM.ToString();
在后台赋值的,但不知道那种写法哪儿错了。
MAX_NUM = int.Parse(Session["MAX_NUM"].ToString());
第一个是声明,第二个是赋值,在pageload中,SQL语句是在数据源控件中的。
我的解决办法是:
AccessDataSource1.InsertCommand = "INSERT INTO [项目阶段] ([项目编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法]) VALUES (" + MAX_NUM.ToString() + ", ?, ?, ?, ?, ?)";
AccessDataSource1.SelectCommand = "SELECT [编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法] FROM [项目阶段] WHERE [项目编号] = " + MAX_NUM.ToString();
在后台赋值的,但不知道那种写法哪儿错了。
作者: johnnyflute 发布时间: 2011-06-16
<%= MAX_NUM%>
作者: wxr0323 发布时间: 2011-06-16
很简单的错误,你后台是个变量,所以前台取值应该这样:注意红色部分,修改一下即可
SelectCommand="SELECT [编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法] FROM [项目阶段] WHERE [项目编号] = <%= MAX_NUM%>"
SelectCommand="SELECT [编号], [阶段编号], [阶段目标], [目标权重], [任务描述], [实施方法] FROM [项目阶段] WHERE [项目编号] = <%= MAX_NUM%>"
作者: taomanman 发布时间: 2011-06-16