小编pfu*_*unk的帖子

Visual Studio中的"转到定义"仅显示元数据

我在Visual Studio 2008中的Web项目中工作.当我点击F12(或右键单击并选择Go To Definition)时,Visual Studio始终会转到Meta数据文件而不是转到源.

一些要点:

  • 所有的源代码都是C#,没有VB.Net
  • 所有项目都在同一个解决方案中
  • 是的,一切都是项目参考(检查和双重检查)
  • 我已经尝试过Clean/Rebuild Solution方法(甚至可以清除Temp目录,Temporary ASP.NET Files目录等).

有没有其他人看到这种行为和/或知道如何解决它?

visual-studio

116
推荐指数
9
解决办法
8万
查看次数

C#速记属性问题

所以这里有一些我从未见过的语法,有人能告诉我这意味着什么吗?不确定这是否应该是抽象属性声明的一些简写或什么或什么.

public Class1 myVar { get; set; }
Run Code Online (Sandbox Code Playgroud)

值得一提的是,Class1是一个抽象类.

c# properties

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

ASP/VBScript"陷入困境"

我支持/增强了用Classic ASP/VBScript编写的Web应用程序.自从我使用日常生产能力以来已经过去了大约10年.我刚刚遇到了一个我认为是"陷阱"的问题,并且想知道其他人是否有类似我应该学会了解的事情.

我的问题:
我必须将SQL表中的列从float转换为decimal.事实证明,十进制不是vbscript中真正支持(或支持得很好)的类型.所以下面的代码:

Dim var1, var2

var1 = rs("DecimalField1").Value
var2 = rs("DecimalField2").Value

If (var1 <> var2) Then
    'Do Something'
End If
Run Code Online (Sandbox Code Playgroud)

会在线路上出现类型不匹配错误:

If (var1 <> var2) Then
Run Code Online (Sandbox Code Playgroud)

经过多次搜索,我发现:

var1 = CDBL(rs("DecimalField1").Value)
var2 = CDBL(rs("DecimalField2").Value)
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.但这似乎并不是一个显而易见的事情,我花了一段时间才弄清楚为什么我在那条线上遇到类型不匹配.

所以我对每个人的问题是,你遇到过这样的其他小问题吗?ASP/vbscript中有哪些东西你会被认为是"陷阱",我应该注意什么?

vbscript decimal asp-classic

9
推荐指数
3
解决办法
2216
查看次数

是否可以从Azure辅助角色打印.NET代码

首先,我知道这个似乎问同样问题的问题.但是我会稍微修改一下再问一次.

我正在开发一个打印PDF的项目.我们有一个PDF操作库.我们可以使用它将PDF呈现为System.Drawing.Printing.PrintDocument对象可以使用的文件,并在c#中打印.我们将拥有一个Azure Worker角色,需要多个1页的pdf并将它们转换为一个大的pdf,我希望有另一个Azure辅助角色,然后在本地将这个大型PDF打印到Windows打印服务器.

由于打印部分速度慢得多(与pdf创建/聚合片相比),我希望能够将其托管在天蓝色中以便轻松扩展.

我最初的想法是"我认为这甚至不可能.Azure如何能够了解我本地打印服务器的任何信息." 这是上述类似问题的基本答案.但经过一些搜索,我发现一些结果似乎表明设置VPN站点到站点隧道或ExpressRoute连接将让我做我想要的.但是我对Azure相对较新,我发现的结果是实际的,有用的,有用的细节.

如果无法完成,那么我可以在本地设置应用服务器来进行打印.但如果有人对如何实现这一点有想法或更多的见解,我很乐意听到它.

c# pdf azure

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

将值插入SQL float列会生成奇怪的结果

我正在研究一个传统的ASP应用程序.我试图将值(40.33)插入到SQL Server 2000中恰好是浮点类型的字段中.我在应用程序中看到的每个地方(通过一些日志记录)都会向存储过程发送40.33.当我在调用时对数据库运行SQL事件探查器时,我在跟踪中看到的值是4.033000183105469e + 001

所有额外的垃圾来自哪里(183105469)?

为什么当我通过40或40.25时没有什么额外的?

这只是使用float的奇怪副作用之一吗?当我写一些东西时,我通常使用金钱或小数或其他东西,所以不熟悉float数据类型.

sql sql-server floating-point

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

我应该在SubQuery中使用Top(1)吗?

示例查询:

select * 
from A join B on A.ID = B.SOMEVALUE
where A.VALUE="something" and
B.ID = 
       (select ID from B where SOMEVALUE = A.ID and 
              THISDATE = (select max(SOMEDATE) from B where ...))
Run Code Online (Sandbox Code Playgroud)

因此,如果您可以阅读SQL,您应该看到我正在做一些相关的子查询来缩小连接的结果.(是的,这非常简化).

在某些情况下子查询:

select ID from B where SOMEVALUE = A.ID and 
    THISDATE = (select max(SOMEDATE) from B where ...)
Run Code Online (Sandbox Code Playgroud)

可以返回多于1个值,这会导致错误

"子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做."

我完全期待.这显然不是一件好事,我有代码(希望)防止这些重复项首先进入数据库(即表B 应该只有1行匹配

SOMEVALUE = A.ID and max(SOMEDATE)
Run Code Online (Sandbox Code Playgroud)

然而,最终用户如果没有创造性,却找不到破解软件的方法.

所以现在我的问题:

将第一个子查询更改为更好

select top 1 * from B ...
Run Code Online (Sandbox Code Playgroud)

当/如果(希望永远不会)出现这种情况或让错误通过时,防止用户看到错误.我倾向于不添加top语句并让错误通过而不是让用户看到可能不正确的数据.我想知道在这种情况下是否有人对最佳实践有任何想法......

sql subquery

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