小编Jas*_*own的帖子

SQLite相当于ISNULL(),NVL(),IFNULL()或COALESCE()

我想避免在我的代码中进行如下的许多检查:

myObj.someStringField = rdr.IsDBNull(someOrdinal) 
                            ? string.Empty 
                            : rdr.GetString(someOrdinal);
Run Code Online (Sandbox Code Playgroud)

我想我可以让我的查询通过执行以下操作来处理空值:

SELECT myField1, [isnull](myField1, '') 
FROM myTable1
WHERE myField1 = someCondition
Run Code Online (Sandbox Code Playgroud)

我虽然使用SQLite,但似乎没有认识到这个isnull功能.我也试过其他数据库中的一些公认的那些等效(NVL(),IFNULL()COALESCE()),但SQLite的似乎不认识任何人.

有没有人有任何建议或知道更好的方法来做到这一点.不幸的是,数据库没有所有字段的默认值.另外,LEFT JOIN在某些情况下我需要使用一些子句,其中返回的某些字段将为null,因为LEFT JOIN表中的匹配记录将不存在.

.net sqlite dbnull

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

如何定义原始类型的泛型类型限制?

我有以下方法与泛型类型:

T GetValue<T>();
Run Code Online (Sandbox Code Playgroud)

我想将T限制为原始类型,如int,string,float,但不是类类型.我知道我可以像这样为类类定义泛型:

C GetObject<C>() where C: class;
Run Code Online (Sandbox Code Playgroud)

我不确定原始类型是否可能以及如果可能.

.net c# generics type-constraints

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

将空列表或空值绑定到存储过程(.net)上的表值参数

我创建了一个存储过程,它接受一个表值参数,该参数是一个具有int类型的单个列的表.我们的想法是简单地将一个id列表传递给存储过程,并允许sp使用数据.但是,在没有数据传入的情况下,我遇到了问题(当我有数据时,事情正常工作).我正在将List转换为IEnumerable,并将其绑定到sp的表值参数.我试图绑定一个空List,导致错误

System.ArgumentException:SqlDataRecord枚举中没有记录.要发送没有行的表值参数,请使用值的空引用.

然后我尝试绑定一个空值(我认为这是上面的消息得到的),但这只会导致一个不同的错误消息

System.NotSupportedException:不支持参数'@MainItemIdList'的DBNull值.表值参数不能是DBNull.

您似乎不能在sp声明中将表值参数声明为可为空.将空列表绑定到表值参数的正确方法是什么?

.net stored-procedures sql-server-2008 table-valued-parameters

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

关于CLR的Clojure

我有兴趣在CLR上调查Clojure.我看到有一个端口 -但我总是对这些二等公民有点怀疑(即他们没有原始的稳定性或功能).如果一般人们发现CLR上的Clojure不成熟,我就不太愿意花这么多时间 - 我现在根本没有时间或精力去解决一堆问题.另一方面,如果CLR上的Clojure看起来很好吃,我今天就开始潜水吧!

在CLR上有没有关于Clojure的实际经验?

任何有关CLR版本的建议和/或其他帮助也将受到赞赏.

clr clojure clojureclr

54
推荐指数
2
解决办法
7343
查看次数

为什么我应该使用Enum Int32的底层类型而不是字节?

鉴于以下枚举:

public enum Operations_PerHourType : byte
{
    Holes = 1,
    Pieces = 2,
    Sheets = 3,
    Strips = 4,
    Studs = 5
}
Run Code Online (Sandbox Code Playgroud)

当我运行Microsoft代码分析工具时,它告诉我:

CA1028:Microsoft.Design:如果可能,请创建基础类型"Enums.Operations_PerHourType"System.Int32而不是"byte".

它永远不会超过几个可能的值,所以我将其声明为一个字节.他们为什么建议使用int32?未来可扩展性的更多价值?或者是否有性能提升?

.net c# enums

53
推荐指数
3
解决办法
4208
查看次数

在vim拆分窗格之间导航的更简单方法

NERDTree在vim上使用,通常打开文件i

有没有一种简单的方法在不同的窗格之间切换?目前我CTRL+W+W用来从一个窗格移动到另一个窗格.

navigation vim

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

结构 - 现实生活中的例子?

这里有许多问题涉及C#中Structs和Classes之间的差异,以及何时使用其中一个.(一句话答案:如果你需要价值语义,请使用结构.)有很多关于如何选择其中一种的指导方针,其中大部分归结为:除非你满足这些特定要求,否则使用一个类,然后使用结构.

这一切都对我有意义.

但是,我似乎无法找到任何在系统中使用结构的人的现实例子.我是(半)新的C#,我很难想象结构是真正正确的选择的具体情况(至少,我还没有遇到过.)

所以,我转向SO世界大脑.在某些情况下,您实际在系统中使用结构的情况下,哪个类不起作用?

c# struct types

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

有没有办法显示类似于在Vim中显示映射的宏列表?

我知道有一种方法可以列出通过映射:map(或:imap,:cmap等等),但我不能找到一种方法,列出宏我已经保存在我的vimrc文件(如let @a = 'blahblah').

有没有办法做到这一点,而无需手动查看它(通过:split [myvimrcfile]或以任何方式)?

此外,如果可能的话,是否有办法附加某些文档,这些文档将与宏一起显示以解释它的用途?我有一把,我用了很多,但相隔约6周.很快就可以快速列出它们以及一条评论,告诉我宏的作用(甚至只是一个名称,所以我确保使用正确的名称).

谢谢

vi vim macros

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

使用IoC容器时原始构造函数参数是个坏主意吗?

标准新手免责声明:我是IoC的新手并且正在获得混合信号.我正在寻找有关以下情况的一些指导.

假设我有以下接口和实现:

public interface IImageFileGenerator
{
    void RenameFiles();
    void CopyFiles();
}

public class ImageFileGenerator : IImageFileGenerator
{
    private readonly IList<IImageLink> _links;
    private readonly string _sourceFolder;
    private readonly string _destinationFolder;
    private readonly int _folderPrefixLength;

    public ImageFileGenerator(IList<IImageLink> links, string sourceFolder, string destinationFolder)
    {
        _links = links;
        _sourceFolder = sourceFolder;
        _destinationFolder = destinationFolder;
        _folderPrefixLength = 4;
    }

    public void RenameFiles()
    {
        // Do stuff, uses all the class fields except destination folder
    }

    public void CopyFiles()
    {
        // Do stuff, also uses the …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection ioc-container inversion-of-control

36
推荐指数
1
解决办法
4296
查看次数

Resharper:可能为标记为notnull属性的实体赋值

我得到这个警告response.GetResponseStream() 我该怎么办?

// Get response  
using (var response = request.GetResponse() as HttpWebResponse)
{
    // Get the response stream  
    if (response != null)
    {
        var reader = new StreamReader(response.GetResponseStream());
        var responseString = reader.ReadToEnd();
        return responseString;
    }
}
Run Code Online (Sandbox Code Playgroud)

为清楚起见,基于一些错误解释的答案:

此行不是警告发生的地方:

using (var response = request.GetResponse() as HttpWebResponse)
Run Code Online (Sandbox Code Playgroud)

此行警告发生的地方:

var reader = new StreamReader(response.GetResponseStream());
Run Code Online (Sandbox Code Playgroud)

.net c# resharper

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