小编Ela*_*tor的帖子

当使用退格键时,SSMS 2014随机开始抛出"值不在预期范围内"

在SSMS 2014中编写SQL查询时,我会得到一个弹出窗口" Visual Studio遇到异常.这可能是由扩展引起的 "以及我可以使用/ log参数运行应用程序的提示并检查在我的用户的AppData目录中的某处创建了ActivityLog.xml文件.

在此弹出窗口之后,IntelliSense停止更新,并且打开/关闭它没有任何效果(任何错误仍然用红色波浪线等加下划线,包括它们的鼠标悬停弹出窗口无限期保留).请注意,即使脚本中没有任何错误,也会发生这种情况

但这并不是真正的问题,因为我得到" 值不在预期范围内 "错误我每次推倒BACKSPACE KEY,虽然Delete键工作得很好.

在我开始使用该应用程序几个月后才出现此问题.

到目前为止,解决方法是将查询复制到新的查询窗口(立即工作),或等待它随机停止.因此问题被隔离到查询窗口.

重现步骤:

  1. 键入SQL代码一段时间.

似乎绝对没有共性,因为它发生在语法正确/不正确的语句和长/短查询(从单个SELECT语句到数千行存储过程)的所有组合中.它也发生在不引用任何用户定义实体的语句中(例如,从系统表中选择).

故障排除步骤:

  1. 确保安装了所有更新
  2. 重启电脑
  3. 禁用所有扩展 - 我没有使用任何...我遵循注册表路径,并且在任何版本号的SQL Server的x86或x64注册表路径中都没有AddIns键.
  4. 谷歌搜索问题 - 没有相关性 - 我正在键入查询而不使用SSIS
  5. 使用/ log参数运行SSMS - 记录告诉我使用/ log参数启动SSMS的初始错误.但是每次都使用相同的堆栈跟踪记录"超出范围"错误(包含在帖子的底部)

查看日志文件,它们可能在最后一条消息(比我在查询窗口中的时间更长的时间)和使用退格键引起的异常之间有两个小时的间隔.

以下步骤由我公司的IT部门执行:

  1. 清除IntelliSense和其他缓存
  2. 重新安装SSMS

然后:

  1. 整个计算机被替换(我已经完全放弃了IntelliSense for SQL).它工作了一段时间,然后在几个月后再次开始.

我似乎是唯一一个有这个问题的人,因为我公司的IT部门之前没有见过,而且所有Google搜索错误消息都没有结果(我没有使用SSIS).这已经困扰了我一个多月了,让我发疯了.

谢谢.

更新我在编辑JavaScript时在Visual Studio 2013中遇到了类似的棘手行为,它甚至抛出了一个错误,我认为这与退格问题之前SSMS中抛出的第一个错误相同(但我点击太快并在阅读前关闭它) .

ActivityLog.xml中的示例堆栈跟踪

<entry>
    <record>1172</record>
    <time>2017/01/16 19:33:02.289</time>
    <type>Error</type>
    <source>Editor or Editor Extension</source>
    <description>
System.ArgumentException: Value does not fall within the …
Run Code Online (Sandbox Code Playgroud)

ssms-2014

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

在 Visual Studio 中调试时显示 DateTime 的毫秒部分

我试图在 Visual Studio 中调试一些需要毫秒精度的东西,这使得它变得非常繁重,因为a 的无参数 表示不包括毫秒部分。ToString()System.DateTime

一个例子是,当验证数组System.DateTime是否有序时,我希望能够在从本地窗口检查时看到毫秒部分。

我并不是寻求有关格式字符串的帮助DateTime.ToString

它似乎继承自系统全球化设置,该设置不允许您指定毫秒格式(出于良好、明显的原因): 在此输入图像描述

谢谢。

c# debugging time-format visual-studio

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

C#-无法在派生类构造函数中设置只读属性和字段

我有一个像下面这样的类结构

abstract class AMyAbstractClass {
    public readonly int MyReadonlyField;
    public int MyReadonlyProperty { get; }//read-only auto-property (syntactic sugar)
}
class MyConcreteClass : AMyAbstractClass {
    MyConcreteClass() {
        this.MyReadonlyField = 1;
        this.MyReadonlyProperty = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

抛出编译错误

无法将只读字段分配给它(在构造函数或变量初始化程序中除外)

无法将属性或索引器'AMyAbstractClass.MyReadonlyProperty分配给它-只读

分别。

在第一种情况下,错误消息是错误的,因为它在构造函数中设置的!


我可以想出具有不可变对象属性的替代方法,但是为什么不允许这种情况呢?这种封装有哪些好的做法?

c# constructor derived-class readonly-attribute

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