当前位置:  开发笔记 > 编程语言 > 正文

无法将DBNULL值插入sql server

如何解决《无法将DBNULL值插入sqlserver》经验,为你挑选了1个好方法。

为什么我会收到此错误?

Object cannot be cast from DBNull to other types.

当我在sql server 2005中为numeric数据类型插入null值时

这是我的代码,

 if (MeasurementTr.Visible == true)
    {
        materialIn.measurementId = Convert.ToInt64(DlMeasurement.SelectedValue.ToString());
    }
    else
    {
        materialIn.measurementId = Convert.ToInt64(DBNull.Value);
    }

编辑:

这是正确的吗??

 materialIn.measurementId = (Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) != 0) ? Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) : 0;

Aaronaught.. 5

您不能转换DBNull.ValueInt64为你的代码试图在做Convert.ToInt64. DBNull.Value表示"未知"或"不存在",因此没有逻辑转换为任何其他数据类型.

如果materialIn实例是某种形式的强类型DataRow,它将有一个SetMeasurementIdNull方法,这是您需要使用的方法.如果你使用Linq to SQL或EF,你根本不需要处理DBNull,你只需要写materialIn.measurementId = null.



1> Aaronaught..:

您不能转换DBNull.ValueInt64为你的代码试图在做Convert.ToInt64. DBNull.Value表示"未知"或"不存在",因此没有逻辑转换为任何其他数据类型.

如果materialIn实例是某种形式的强类型DataRow,它将有一个SetMeasurementIdNull方法,这是您需要使用的方法.如果你使用Linq to SQL或EF,你根本不需要处理DBNull,你只需要写materialIn.measurementId = null.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有