C# 如何从C将函数posgrest中的null设置为整数#
我对将参数null传递给integer类型的解决方案感到困惑。这是我在.Net项目中使用angular的代码。谢谢你的帮助C# 如何从C将函数posgrest中的null设置为整数#,c#,.net,postgresql,function,null,C#,.net,Postgresql,Function,Null,我对将参数null传递给integer类型的解决方案感到困惑。这是我在.Net项目中使用angular的代码。谢谢你的帮助 if(data.searchRange != "") { m_npgDB.SetParams("p_searchRange", int.Parse(data.searchRange)); } else { m_npgDB.SetParams("p_searchRange", "&quo
if(data.searchRange != "")
{
m_npgDB.SetParams("p_searchRange", int.Parse(data.searchRange));
}
else
{
m_npgDB.SetParams("p_searchRange", "");
}
您只需要创建一个参数
if (int.TryParse(data.searchRange, out var range))
{
m_npgDB.SetParams("p_searchRange", range);
}
else
{
m_npgDB.SetParams("p_searchRange", null);
}
您应该能够使用可为空的整数
var value = int.TryParse(data.searchRange, out var range) ? range : default(int?);
m_npgDB.SetParams("p_searchRange", value);
是否允许只传递
null
?如果没有,它是否理解db allow null中的/allowDBNull.Value
?列。我在postgrest函数中有一个条件,例如(p_searchRange为null或search_range=p_searchRange)整数类型在C#中可以为null,但您在else子句中没有传递null,而是传递空字符串。@jdoer1997整数是值类型,所以它们不能是null
…嗯,我尝试更改类型为数值,使用SetParamNumber为“”。成功了!(仅供参考,不需要对range
进行显式强制转换)SetParams方法是接受参数2是字符串、int、bool等,但不接受nullable。您可以更改SetParams
方法以接受nullable int或使其成为泛型。ADO.NET为sql查询接受不同类型的.NET参数。该方法从元数据中设置NpgDBManager库中的参数。不能改变方法。如果在参数中传递nullable。数据是类似于“null”字符串的字符。非空值。然后使用接受int?
的其他方法或直接使用Npgsql创建带参数的命令。