定义SqlParameter直接赋值,值总为null

使用new SqlParameter("@TRANSFER_TYPE", (int)TypeEnum.type1)。TypeEnum.type1的值为0。

查看msdn:

因为此重载接受 Object 类型的 value,所以当此值为零时,必须将整数值转换为 Object 类型,如下面的 C# 示例所示。

如果不执行该转换,则编译器将认为您尝试调用 SqlParameter(string、SqlDbType)构造函数重载。

这也就解释了,为什么定义后它的值总为null。正确应该为:

new SqlParameter("@TRANSFER_TYPE", Convert.ToInt32(TypeEnum.type1));

posted @ 2012-07-12 17:52  ppx  阅读(552)  评论(0编辑  收藏  举报