这里有类似的帖子.我只想澄清一些事情.我在测试项目中实现了这一点.我创建了两个页面page1.aspx和page.aspx是除名称之外的彼此的副本.我对它们进行了配置,以便它们使用相同的后端编码文件.
page1.axpx - > page.aspx.cs page2.aspx - >(上面的代码)
我的问题是,
是避免额外代码和增强维护是一个好主意吗?
虽然每个人都在上面的测试项目中工作.在我的实际项目中,我得到了这个非常常见的错误
当前上下文asp中不存在名称"xxxx"
由于上述错误,代码将无法编译.如果我从浏览器运行应用程序,它确实有效(或似乎是).我的问题是,为什么我没有在一个应用程序中而不是另一个应用程序中收到此错误.此问题现已修复.但是想知道为什么我首先得到这个错误,然后在这里和那里玩它,错误就消失了.
我相信这确实是微软的错误.怎么样?我在这里解释一下.
Page1.aspx.cs实际上是使用Page.aspx页面而不是page1.aspx控件.intellisence只显示Page1.aspx控件(如果你将控件添加到page2,它不会显示在intellesense中,如果你将它添加到Page1,它将被显示).由于两个页面上的控件完全相同(包括名称和ID),因此它们奇迹般地起作用.有时编译器不喜欢它并且会给你错误(没有明显的原因).微软应该更优雅地解决这些问题,而不是把它扔给我们.
所以它解决了我,但任何人都可以解释这种神秘的行为.
我有一个菜单,我禁用某些组的某些选项.它是下拉菜单,大约有10个entriees.当我运行这样的代码
menuMain.Items[0].ChildItems.RemoveAt(0);
menuMain.Items[0].ChildItems.RemoveAt(1);
menuMain.Items[0].ChildItems.RemoveAt(2);
menuMain.Items[0].ChildItems.RemoveAt(3);
menuMain.Items[0].ChildItems.RemoveAt(4);
menuMain.Items[0].ChildItems.RemoveAt(5);
Run Code Online (Sandbox Code Playgroud)
这意味着我想删除这一组的前6个条目,我在第5项中得到例外,说索引超出范围.
我发现上面的代码从菜单中删除了所有其他项目,而不是被引用的项目.
removes 0th item
removes 2nd item
removes 4rd item
...
removes 10th item
removes 12th item (index not found)
Run Code Online (Sandbox Code Playgroud)
有谁知道它为什么会这样?
注意:我在调试模式下检查了代码,它确实指向了正确的菜单项,它既奇数又偶数,并且不会跳过2.
在c ++中,我们喜欢在析构函数中做一些事情.但在什么样的情况下,析构函数不会被调用?
以下情况中的示例:
exit() 在线程中调用TerminateProcess() (在Windows中)我已将此光标写入佣金报告.会发生什么是佣金来自一个表,记录是另一个表.我根据某些标准匹配两个(没有完全匹配).问题是存在记录的重复.当我将佣金与records表格匹配时,可能会导致重复这些重复.因此,代表获得更多报酬.另一方面,佣金表中也有重复,但这些都是有效的,因为它们简单意味着账户已经支付了2个月.
我写了这个查询,但需要5分钟才能运行.我在记录表中有50,000条记录,在佣金表中有100,000条记录.有什么方法可以改进这个游标吗?
/* just preparation of cursor, this is not time consuming */
CREATE TABLE #result
(
repid INT,
AccountNo VARCHAR(100),
supplier VARCHAR(15),
CompanyName VARCHAR(200),
StartDate DATETIME,
EndDate DATETIME,
Product VARCHAR(25),
commodity VARCHAR(25),
ContractEnd DATETIME,
EstUsage INT,
EnrollStatus VARCHAR(10),
EnrollDate DATETIME,
ActualEndDate DATETIME,
MeterStart DATETIME,
MeterEnd DATETIME,
ActualUsage INT
)
DECLARE @AccountNo VARCHAR(100)
DECLARE @supplier VARCHAR(10)
DECLARE @commodity VARCHAR(15)
DECLARE @meterstart DATETIME
DECLARE @meterEnd DATETIME
DECLARE @volume FLOAT
DECLARE @RepID INT
DECLARE @Month INT
DECLARE @Year INT
SET …Run Code Online (Sandbox Code Playgroud)