C#执行标量()-必须小于无穷大
本文关键字:小于 无穷大 执行 标量 | 更新日期: 2023-09-27 18:19:56
下面的代码有点问题。方法NextIPID()应该简单地查找SQL Server中的一个表,该表返回字段IPID的最大值,然后将其加1,以获得序列中的下一个数字。
public int NextIPID()
{
string strConnect = BuildConnectionString();
SqlConnection linkToDB = new SqlConnection(strConnect);
linkToDB.Open();
string sqlStat = "SELECT MAX(IPID) FROM tblInterestedParties;";
SqlCommand sqlCom = new SqlCommand(sqlStat, linkToDB);
int intNextIPID = (Int32)sqlCom.ExecuteScalar();
linkToDB.Close();
return intNextIPID + 1;
}
然而,我不断收到错误消息
从数字进行强制转换时,值必须是小于无穷大的数字。
我怀疑这是因为表当前为空,但我希望Execute Scalar返回"0",因此添加一意味着该方法返回下一个值,即1。然而,这并没有发生。
非常感谢您的协助。
如果表为空,则查询不会返回0,而是返回NULL。你可以使用
SELECT ISNULL((SELECT MAX(IPID) FROM tblInterestedParties), 0)
更改:
string sqlStat = "SELECT MAX(IPID) FROM tblInterestedParties;";
至:
string sqlStat = "SELECT ISNULL(MAX(IPID), 0) FROM tblInterestedParties;";