小编Joh*_*hnB的帖子

C#if语句简写操作符(?:)导致无法访问的代码

为什么我在使用Visual Studio 2010的C#中收到此警告?

"Unreachable expression code detected"
Run Code Online (Sandbox Code Playgroud)

从以下代码(DateTime.Now绿色波浪形下划线):

public DateTime StartDate
{
  get
  {
    DateTime dt = (DateTime)ViewState["StartDate"];
    return ((dt == null) ? DateTime.Now : dt);
  }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net if-statement visual-studio

13
推荐指数
1
解决办法
5740
查看次数

此文件位于本地网络之外的位置

如果我从一个网络文件夹启动我的应用程序,我没有得到一个对话框.

但是,如果我将我的应用程序复制到另一个网络文件夹,并尝试启动它,我会看到如下所示的"打开文件 - 安全警告"对话框:

打开文件 - 安全警告

如果你谷歌:

您会遇到有关Intranet与Internet区域,注册表编辑,组策略更改甚至Microsoft Access的页面.

如果可能的话,我不想处理任何这些问题.我需要解决方案来处理将从网络启动此应用程序的100台计算机,并且我无法对每台计算机进行系统更改.

1.如果我从某些网络文件夹而不是其他网络文件夹启动,为什么我会收到该对话框

2.如何防止该对话框弹出?

如果适用,请提及多种可能性.

windows windows-7 winforms

11
推荐指数
3
解决办法
4万
查看次数

VBScript函数中的变量范围

我对VBScript中的变量范围有疑问.我知道有以下关键字(来自autoitscript.com):

  1. 如果变量名称不是全局存在的话,Dim = Local scope(在这种情况下,它会重用全局变量!)
  2. Global =强制在全局范围内创建变量
  3. Local =强制在Local/Function范围内创建变量

想象一下,我有以下.vbs文件:

Dim strPath

strPath = "C:\folder"

DisplayPath strPath

Sub DisplayPath(strPath) 'Does this strPath get it's own local scope?
  MsgBox strPath
End Sub
Run Code Online (Sandbox Code Playgroud)

在功能:DisplayPath(strPath)strPath一个局部变量?或者函数/ subs是否可以访问strPath脚本主要部分顶部定义的全局变量?

另外,Dim在我使用它们时明确使用而不仅仅定义变量有什么意义,这在脚本语言中是可能的?

vbscript scope

10
推荐指数
1
解决办法
5万
查看次数

for循环中计数器变量的范围是多少?

我在Visual Studio 2008中收到以下错误:

Error 1 A local variable named 'i' cannot be declared in this scope because it would give a different meaning to 'i', which is already used in a 'child' scope to denote something else

这是我的代码:

for (int i = 0; i < 3; i++)
{
  string str = "";
}

int i = 0; // scope error
string str = ""; // no scope error
Run Code Online (Sandbox Code Playgroud)

我知道str一旦循环终止就不再存在,但我也认为范围i也局限于for循环.

那么i与在for循环之外声明的变量具有相同的范围吗? …

c c# scope

9
推荐指数
1
解决办法
4363
查看次数

自上一步(Visual Studio)以来,进程或线程已更改

我有一个C#.NET 控制台应用程序,使用它发送电子邮件SmtpClient.

我在下面的代码中遇到以下行为:

  1. 在第35行上方设置一个断点
  2. 点击破发点,逐步进入第30,32行等.
  3. 在它到达第35行之前,它再次跳回到第28行
  4. 在某些时候,我得到"进程或线程自上一步以来已更改"消息
  5. 跳跃似乎是随机的

自上一步屏幕截图以来,进程或线程已更改

为什么我的断点跳了?

这条消息是什么意思?

我的代码有什么问题吗?

(这是关于Stackoverflow的另一个类似的问题.可能是同样的事情,但它是ASP.NET)


Per Hans Passants的提示如下.

此版本允许竞争条件:Timer.AutoReset在我的计时器的事件处理程序中切换属性,以避免代码运行时重新进入.

private void OnTimerElapsed(object source, ElapsedEventArgs e)
{
  timer.AutoReset = false; // prevent another Elapsed event
  MyClass.SendMail(smtpServer, account, password); // do stuff
  timer.AutoReset = true; // allow another Elapsed event
}
Run Code Online (Sandbox Code Playgroud)

最终版本:初始化AutoReset已设置为false 的计时器,然后Timer.Start()在Elapsed事件处理程序结束时再次调用.

public void Start()
{
  timer = new Timer(checkInterval);
  timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed);
  timer.AutoReset = false; // …
Run Code Online (Sandbox Code Playgroud)

.net debugging visual-studio

9
推荐指数
1
解决办法
9456
查看次数

使用存储过程作为业务逻辑层

我正在为之工作的公司目前正在使用存储过程(在MsSQL服务器后端)作为其业务逻辑层.实际的业务逻辑DLL只调用sProcs并基本上管理UI(事件,数据绑定等)

我觉得设置有问题,虽然我不确定如何向同事解释.顺便说一句,系统工作.

我工作场所的"最佳实践"是错误的吗?或者我只是过度思考这个?

sql-server stored-procedures

8
推荐指数
3
解决办法
3601
查看次数

DataTrigger使WPF按钮处于非活动状态,直到TextBox具有值

我希望Button控件的属性IsEnabled="False"直到将值输入到a TextBoxWindow.

代码到目前为止:

<Button
  Content="Click Me"
  Name="ClickMe"
  VerticalAlignment="Top"
  Click="ClickMe_Click">
  <Button.Style>
    <Style>
      <Style.Triggers>
        <DataTrigger
          Binding="{Binding ElementName=textBox, Path=Length}"
          <!-- or even: Binding="{Binding Path=textBox.Length}" -->
          Value="0">
          <Setter
            Property="Button.IsEnabled"
            Value="false" />
          </DataTrigger>
      </Style.Triggers>
    </Style>
  </Button.Style>
</Button>
Run Code Online (Sandbox Code Playgroud)

此外,是否可以将此Button控件的IsEnabled属性基于3个TextBox具有值的不同控件?

.net wpf xaml binding

7
推荐指数
1
解决办法
2万
查看次数

在构建过程中自动加密App.config文件

目前,我的应用程序在第一次启动应用程序时自动加密自己的App.config文件.

我正在使用ConfigurationManager本文中演示的类:

现在我希望在应用程序第一次启动之前已经加密了App.config.

原因是我在我的解决方案中添加了一个安装程序,而且我不希望安装程序丢弃未加密的App.config.我希望这个过程是自动化的.

(到目前为止我唯一提到的是将.exe附加到Post-Build事件中,但是不是更直接的方式吗?)

.net msbuild windows-installer visual-studio winforms

7
推荐指数
1
解决办法
3569
查看次数

<input type ="button"runat ="server"/>在ASP.NET中不起作用

好吧,这看起来很愚蠢,但在ASP.NET .ascx控件上,我正在尝试使用:

<input type="button" runat="server" />
Run Code Online (Sandbox Code Playgroud)

代替:

<asp:Button runat="server" />
Run Code Online (Sandbox Code Playgroud)

它对我不起作用.这段代码:

<asp:Button id="btnBuyCat" runat="server" Text="Buy Cat"
ToolTip="Click to buy a cat" OnClick="btnBuyCat_Click" EnableViewState="false" />
Run Code Online (Sandbox Code Playgroud)

呈现以下HTML :( 忽略命名容器btw)

<input type="submit" id="btnBuyCat" name="btnBuyCat" value="Shopping Cart"
title="Click to buy a cat" />
Run Code Online (Sandbox Code Playgroud)

这主要是罚款,但我想input type="button"不会input type="submit".

我试过这段代码:

<input type="button" id="btnBuyCat" name="btnBuyCat" runat="server"
value="Buy Cat" title="Click to buy a cat" onclick="btnBuyCat_Click"
enableviewstate="False" />
Run Code Online (Sandbox Code Playgroud)

并获取此HTML:

<input type="button" id="btnBuyCat" name="btnBuyCat"" value="Buy Cat"
title="Click to buy a cat" onclick="btnBuyCat_Click" />
Run Code Online (Sandbox Code Playgroud)

不幸的是,渲染按钮不起作用.此外,我甚至试图input type="submit"检查,但除非我使用 …

javascript asp.net

6
推荐指数
1
解决办法
3万
查看次数

SQL Server DELETE的索引速度较慢

我有一个SQL Server 2005数据库,我尝试在适当的字段上放置索引,以便DELETE从具有数百万行(big_table只有3列)的表中加速记录,但现在DELETE执行时间更长!(例如1小时对比13分钟)

我和表之间有关系,我过滤的列DELETE在另一个表中.例如

DELETE FROM big_table
WHERE big_table.id_product IN (
SELECT small_table.id_product FROM small_table
WHERE small_table.id_category = 1)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我也尝试过:

DELETE FROM big_table
WHERE EXISTS
(SELECT 1 FROM small_table
WHERE small_table.id_product = big_table.id_product
AND small_table.id_category = 1)
Run Code Online (Sandbox Code Playgroud)

虽然它似乎比第一个运行得稍微快一点,但索引的速度仍然比没有速度慢得多.

我在这些字段上创建了索引:

  1. big_table.id_product
  2. small_table.id_product
  3. small_table.id_category

我的.ldf文件在这期间增长了很多DELETE.

DELETE当我的表上有索引时,为什么我的查询会变慢? 我以为他们应该跑得更快.

UPDATE

好的,共识似乎是索引将放慢一个巨大的DELETE因为索引必须更新.虽然,我仍然不明白为什么它不能同时DELETE全部所有行,并且最后只更新一次索引.

我从一些阅读中得到的印象是,DELETE通过WHERE更快地搜索子句中的字段,索引会加快.

Odetocode.com说:

"在DELETE和UPDATE命令中搜索记录时,索引的工作方式与SELECT语句一样."

但是在文章的后面,它说太多的索引会影响性能.

鲍勃问题的答案:

  1. 表中有5500万行
  2. 删除了4200万行
  3. 类似SELECT语句不会运行(抛出类型'System.OutOfMemoryException'的异常)

我尝试了以下2个查询: …

sql sql-server subquery sql-delete

6
推荐指数
1
解决办法
2万
查看次数