小编Set*_*man的帖子

如何在vb.net中创建可取消事件

在VB.NET(而不是c#)...

我想创建一个可以被侦听器取消的事件.就像你可以取消winforms表格的结束事件一样,在这种情况下表格不会关闭.

我已经从EventArgs实现了一个派生类,它具有可设置的Cancel属性,如下所示:

Public Class AnnounceNavigateEventArgs
    Inherits EventArgs

    Private _cancel As Boolean = False

    ''' <summary>
    ''' Initializes a new instance of the AnnounceNavigateEventArgs class.
    ''' </summary>
    Public Sub New(ByRef cancel As Boolean)
        _cancel = cancel
    End Sub
    Public Property Cancel() As Boolean
        Get
            Return _cancel
        End Get
        Set(ByVal value As Boolean)
            _cancel = value
        End Set
    End Property

End Class
Run Code Online (Sandbox Code Playgroud)

请注意,我将取消参数byRef传递给构造函数.

我设置的监听器将属性设置为Cancel = True.我认为ByRef意味着_cancel和cancel都指向堆栈上的相同位置,因此设置_cancel = true会使cancel = true.但这不是我得到的行为._cancel在setter中变为true但我猜构造函数的参数仍为false.

在vb.net中执行此操作的正确方法是什么?

赛斯

vb.net events event-handling

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

如何对返回多行的选择结果求和

我有一个 SQL 变量 @SumScore dec(9,4)

我正在尝试按如下方式分配变量:

SET @SumScore =   
        (  
            SELECT Sum(  
                (  
                    SELECT SUM(etjs.CalculatedScore * sc.PercentOfTotal) as CategoryScore   
                    FROM tblEventTurnJudgeScores etjs 
                        INNER JOIN tblJudgingCriteria jc ON  jc.JudgingCriteriaID = etjs.JudgingCriteriaID  
                        INNER JOIN tblScoringCategories sc ON jc.ScoringCategoryID = sc.ScoringCategoryID  
                    GROUP BY jc.JudgingCriteriaID  
                ) 
            As ComputedScore) AS SumTotalScore  
        )  
Run Code Online (Sandbox Code Playgroud)

换句话说,内部选择返回一列。我希望为 var 分配正在返回的所有行的 SUM。

我意识到这可以很容易地用临时表来完成。但这是唯一的方法吗?

sql t-sql sql-server

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

在Mvc 3 razor中查看在模型中基于Null有条件地渲染html的最佳方法是什么

这是一个简单的问题,但我无法解决这个问题.

我想做这样的事....

@(string.IsNullOrEmpty(Model.CustomerUrl) ? "" : <a href="@Model.CustomerUrl">Click me</a>)
Run Code Online (Sandbox Code Playgroud)

此代码段不起作用.

将html与剃刀语法混合并在标签的属性中包含引号使得很难弄清楚.

我喜欢剃刀,除非弄清楚这种东西真的让我感到沮丧.

如果CustomerUrl为null或为空,我很乐意不呈现以下内容...

<p class="customerLink links"><a href="@Model.CustomerUrl">@Model.CustomerName</a></p>
Run Code Online (Sandbox Code Playgroud)

编辑
这仍然不适合我...感谢您的建议.

我的问题是上面的代码在Razor代码块中是ALREADY.这是我无法弄清楚的实际代码......

编辑号码2 - 以下代码现在正在运行

    @if (Model.Count() > 0)
    {
        foreach (var partner in Model)
        {
            <li>
                @Html.ActionLink(@partner.CustomerName, "Details", "Customer", new { id = Customer.AID }, null)<br />
                @partner.Street<br />
//this is what i cannot figure out!!
                @if(!string.IsNullOrEmpty(partner.Phone))
                    {
                        @partner.Phone@:<br />
                    }
                @partner.Distance<br />
            </li>
        }
    }
Run Code Online (Sandbox Code Playgroud)

我在嵌套块(if)之前加上@符号.然后标记
我必须用@分界:然后它工作了.

似乎昨天当我尝试使用嵌套的剃刀代码块时,我得到了一个编译器错误,因为我之前是一个@.所以现在我比以前更加困惑.

事实上......如果我试图用这样的引号包围我的@ partner.Phone ... "@partner.Phone"@:</ br>我得到另一个编译器错误.Razor在它工作时非常棒,但是当它不工作时它会非常混乱.

赛斯

c# asp.net asp.net-mvc razor asp.net-mvc-3

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

如何在剃刀代码块中包含ul标签?

为什么以下代码工作正常......

        <ul class="searchList">
            @if (Model.Count() > 0)
            {
                foreach (var partner in Model)
                {
                    <li>
                        @Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br />
                        @partner.Street<br />
                        @partner.CityStateZip<br />
                        @if(!string.IsNullOrEmpty(partner.Phone))
                            {
                               @partner.Phone<br />
                            }
                        @(partner.Distance) miles<br />
                    </li>
                }
            }
        </ul>
Run Code Online (Sandbox Code Playgroud)

但是这段代码不能正常工作......

            @if (Model.Count() > 0)
            {
                <ul class="searchList">

                        foreach (var partner in Model)
                        {
                            <li>
                                @Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br />
                                @partner.Street<br />
                                @partner.CityStateZip<br />
                                @if(!string.IsNullOrEmpty(partner.Phone))
                                    {
                                       @partner.Phone<br />
                                    }
                                @(partner.Distance) miles<br /> …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc razor c#-3.0 asp.net-mvc-3

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

是否必须为异步方法调用调用EndInvoke(或定义回调),即使它返回时没有任何操作

我在CodeProject上发现以下代码片段,以异步方式调用方法... http://www.codeproject.com/Articles/14931/Asynchronous-Method-Invocation

private void CallFooWithOutAndRefParameters()
{
    // create the paramets to pass to the function
    string strParam1 = "Param1";
    int intValue = 100;
    ArrayList list = new ArrayList();
    list.Add("Item1");

    // create the delegate
    DelegateWithOutAndRefParameters delFoo =
      new DelegateWithOutAndRefParameters(FooWithOutAndRefParameters);

    // call the beginInvoke function!
    IAsyncResult tag =
        delFoo.BeginInvoke(strParam1,
            out intValue,
            ref list,
            null, null);

    // normally control is returned right away,
    // so you can do other work here...

    // calling end invoke notice that intValue and list are passed
    // …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net asynchronous callback

5
推荐指数
3
解决办法
9769
查看次数

如何获得Microsoft Access表单来刷新计算列?

我有一个Microsoft Access窗体绑定到具有计算列的链接SQL Server表.我有一个绑定到计算列的控件.

我已经意识到,除非保存记录,否则无法刷新计算字段.除此之外,刷新保存后绑定到计算列的文本框的最佳方法是什么.

我宁愿不做me.requery(整个记录集的重新查询).

有没有办法JUST刷新那个字段?

sql-server data-binding ms-access

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

SQL Server添加列约束以将数据限制为-1到1

我想约束SQL Server十进制列只允许-1,0,1作为有效值.

你能告诉我添加这种约束的SQL语法吗?(我想知道如何在CREATE TABLE语句和/或ALTER TABLE ADD CONSTRAINT中执行此操作).

或者这只能在触发器中完成?

sql t-sql sql-server constraints

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

使用Windows调试工具调试.NET 2.0 Winforms应用程序

我支持相当广泛部署的.NET 2.0 Winforms应用程序.在极少数情况下,我们会收到客户的支持电话,当您尝试启动应用程序时,应用程序会返回.NET运行时异常.

在过去,我们帮助客户重新安装.net框架,并且经常有效......但有时候不行.

在这种情况下,可以使用Windows调试工具来确定问题的原因.如果是这样,你必须下载调试符号到目标计算机(想避免,因为这可能是几百MB的东西下载到目标.)

对于.net应用程序来说这有点过分吗?任何替代品.你会如何调试这个.非特定的逐步将是值得赞赏的.当然,这个应用程序在目标机器上编译为RELEASE配置.客户很可能没有安装开发工具或调试工具.我们通常可以远程控制对计算机的访问.重新迭代.这种情况很快发生,因为客户试图运行应用程序并立即失败.

为客户解决这个问题的最快途径是什么?

以下是事件日志中最近出现的错误示例.
EventType clr20r3..exe P2 2010.1.0.0,p3 4B857AFD P4 BLAH BLAH system.invalidoperation,P10 NIL.

来源:.NET Runtime 2.0错误.EventID:5000

提前致谢.

赛斯

.net debugging remote-debugging winforms

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

如何将泛型委托参数传递给.NET 2.0中的方法

我有一个带有委托声明的课程如下......

Public Class MyClass  
    Public Delegate Function Getter(Of TResult)() As TResult    

    ''#the following code works.
    Public Shared Sub MyMethod(ByVal g As Getter(Of Boolean))
        ''#do stuff
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

但是,我不想在Method调用中显式键入Getter委托.为什么我不能将参数声明如下......

... (ByVal g As Getter(Of TResult))
Run Code Online (Sandbox Code Playgroud)

有办法吗?

我的最终目标是能够在被调用的类中为属性设置器和getter设置委托.但我的阅读表明你不能这样做.所以我在该类中放置了setter和getter方法,然后我希望调用类设置委托参数然后调用.这样做有最好的做法吗?

我在上面的例子中意识到我可以设置从调用类设置委托变量...但我试图创建一个紧密封装的单例.

为了记录,我不能使用.net35中声明的任何新委托类型.

欢迎使用C#中的答案.

有什么想法吗?

赛斯

.net c# vb.net delegates

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

VBer的C#问题.私有字段必须声明为静态吗?

我是vb.net程序员切换到C#.

我有一个控制台应用程序的代码(针对NET20)

using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;


namespace eScoreSwapper
{
    class Program
    {
        private string _dbName = ConfigurationManager.AppSettings["dbName"];

        static void Main(string[] args) {}

        static void InitVars()
        {
            if (string.IsNullOrEmpty(_dbName)) _dbName = "";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这在_dbName变量的InitVars的if子句中给出了编译错误:

Error   1   An object reference is required for the non-static field, method, or property 'eScoreSwapper.Program._dbName'   C:\Users\SethS\Documents\eScore\Versions\Trunk\dotNet\eScoreSwapper\eScoreSwapper\Program.cs    26  38  eScoreSwapper
Run Code Online (Sandbox Code Playgroud)

是因为它是真的.除非声明为静态,否则C#不允许您引用私有类字段?我确信我做错了什么.

在我的时候,我可以问另一个C#问题.为什么if语句有效?为什么不需要牙箍?只要条件后跟单个表达式(如在t-sql IF中),它是否是有效的语法.

谢谢你的帮助.

赛斯

c# vb.net syntax

3
推荐指数
2
解决办法
189
查看次数