首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查数据库值是否因数据库中的空值而不起作用

检查数据库值是否因数据库中的空值而不起作用
EN

Stack Overflow用户
提问于 2018-06-02 15:22:23
回答 2查看 711关注 0票数 2

我正在尝试执行删除操作,但我需要确保在尝试删除之前存在一个值。该值将从数据库中提取。我需要检查dbnull。如果不是,则可以继续删除。我尝试了以下方法,但不起作用:

代码语言:javascript
复制
if (!DBNull.Value.Equals(x.ColourImage))
{
    File.Delete(HttpContext.Current.Server.MapPath(x.ColourImage));
}

当我尝试时,我得到了以下异常:

内部异常类型: System.InvalidCastException

无法将'System.DBNull‘类型的对象强制转换为'System.String’类型。

内部来源: App_Code.bvtnyzaw

内部堆栈跟踪:

在c:\Users\micha\AppData\ Products.GetAllProdColoursRow.get_ColourImage() \Temporary Files\vs\d9cd3740\a9faac06\App_Code.bvtnyzaw.2.cs:line ASP.NET 2245中的Products.GetAllProdColoursRow.get_ColourImage()异常类型: System.Data.StrongTypingException

异常:表'GetAllProdColours‘中列'ColourImage’的值为DBNull。

*编辑*我已经看到了建议的问题,但这些解决方案似乎都没有帮助。无论我怎么尝试,我都会得到相同的异常。

*我的完整代码使用了建议的答案,但仍然得到相同的异常*

代码语言:javascript
复制
public bool DeleteProductColour(int colid, int prd)
{
    bool prodColourDeleted = false;
    try
    {
        var x = pcAdp.GetAllProdColours(prd).AsEnumerable().Where(y => y.ColourId == colid).First();

        if (x != null && !string.IsNullOrEmpty(x.ColourImage))
        {
            File.Delete(HttpContext.Current.Server.MapPath(x.ColourImage));
        }
        pcAdp.DeleteProductColour(colid);
        prodColourDeleted = true;
    }
    catch(Exception er)
    {
        ExceptionUtility.LogException(er, "Delete product colour - ProductsBLL");
    }
    return prodColourDeleted;
}

*更新*

我尝试了以下方法,但得到一个异常: public bool DeleteProductColour(int colid,int prd) { bool prodColourDeleted = false;try { var x= pcAdp.GetAllProdColours(prd).ToList();

代码语言:javascript
复制
        if (x.Any())
        {
            var colour = x.Where(y => y.ColourId == colid).FirstOrDefault();

            if (colour != null && !string.IsNullOrEmpty(colour.ColourImage))
            {
                File.Delete(HttpContext.Current.Server.MapPath(colour.ColourImage));
            }
        }
        pcAdp.DeleteProductColour(colid);
        prodColourDeleted = true;

    }
    catch (Exception er)
    {
        ExceptionUtility.LogException(er, "Delete product colour - ProductsBLL");
    }
    return prodColourDeleted;

}

我得到的例外是

'System.Data.StrongTypingException'类型的

“product.ColourImage”引发了异常

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50654518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档