以下代码有问题。 NextIPID()方法只需查看SQL Server中的一个表,该表返回字段IPID的最大值,然后向其中添加1,以获取序列中的下一个数字。C#ExecuteScalar() - 必须小于Infinity?
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;
}
不过,我不断收到错误消息
“当从多家铸造,值必须小于无穷的数”。
我怀疑这是因为该表目前是空的,但后来我期待执行标量返回'0',因此向其添加一个将意味着该方法返回下一个值,即1.然而,这不会发生。
协助非常感谢。
是什么,当你直接在manamgement工作室或类似的运行SQL返回?你可以(也应该)测试你的期望...... – Chris 2012-01-11 12:39:24
你也可以看看Using语句(http://msdn.microsoft.com/en-us/library/yh598w02.aspx)。这将确保像连接对象这样的东西能够正确处理。 – Chris 2012-01-11 12:46:42