C# 从数据库获取值时,Value始终返回True
我试图用0避免数据库空值,如果不是空值,则获取原始值 但我有一些问题 以下是我的示例代码:C# 从数据库获取值时,Value始终返回True,c#,asp.net,sql,dbnull,C#,Asp.net,Sql,Dbnull,我试图用0避免数据库空值,如果不是空值,则获取原始值 但我有一些问题 以下是我的示例代码: int Value = 0; for(int i = 0; i < tblValue.Rows.Count; i++) { if (tblValue.Rows[i][""]== DBNull.Value)//Here it always returns true.. even there are values at Position 1 and {
int Value = 0;
for(int i = 0; i < tblValue.Rows.Count; i++)
{
if (tblValue.Rows[i][""]== DBNull.Value)//Here it always returns true.. even there are values at Position 1 and
{
Value += 0;
}
else
{
Value += Convert.ToInt32(tblValue.Rows[i][""]);
}
}
int值=0;
for(int i=0;i
有什么想法吗
我是否以错误的方式检查DBNUll值?是。Try(DBNull.Value.Equals(tblValue.Rows[i][“”])
试试这个:
int Value = 0;
for(int i = 0; i < tblValue.Rows.Count; i++)
{
if (!IsDBNull(tblValue.Rows[i][""]))
{
Value += Convert.ToInt32(tblValue.Rows[i][""]);
}
}
int值=0;
for(int i=0;i
如果数据库值为
非空
为什么要检查名称为空的列?这在我看来是错误的。(为什么要麻烦值+=0
呢?)您正在为空列编制索引“”。确实要执行此操作吗?您的数据库查询是什么,或者它返回什么列?顺便说一下,请检查您是否不希望在数据库中使用选择sum(COLUMNNAME)进行此求和这只是一个示例代码。我的实际代码中有列名。如果(tblValue.Rows[i][Column]为DBNull){…},它不应该是
?至少我一直都是这样做的。你确定你的表不是空的吗?谢谢,但它不工作。我得到了相同的结果。它在位置1上返回空值,我知道db值不是空的..:(因此,如果这不起作用,并且您正试图替换null的值,请改为在SQL语句中尝试:而不是:“从MOOSE中选择LLAMA”do:“从MOOSE中选择COALESCE(LLAMA,0)”如果LLAMA为null,这将用0替换它。@Alxandr-是的,这很好,但这仍然意味着您的代码无效(如中所示,它不会编译)不