【发布时间】:2017-12-31 09:27:46
【问题描述】:
我必须在我的加载窗口表单应用程序上自动生成新的 AccountID。
因此,例如,当用户在“帐户 ID”的文本框中启动 Windows 窗体“添加新帐户”时,我必须显示数据库中的最新值。如果我在 Windows 窗体中的数据库中有两个帐户,则文本框中的值将是三个。
如果我在数据库中至少有一个帐户,我的代码可以完美运行,但是当我的数据库为空时,我得到了异常。
这是我的代码:
public int GetLatestAccountID()
{
try
{
command.CommandText = "select Max(AccountID)as maxID from Account";
command.CommandType = CommandType.Text;
connection.Open();
OleDbDataReader reader= command.ExecuteReader();
if (reader.Read())
{
int valueID = Convert.ToInt32(reader["maxID"]);
return valueID + 1;
}
return 1;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (connection!= null)
{
connection.Close();
}
}
}
我也在stackoverflow上找到答案:
object aa = DBNull.Value;
int valueID = (aa as int?).GetValueOrDefault();
但是如果我的数据库是空的,这行代码就可以工作,但是当我在数据库中有一个帐户时,它总是会显示在我的 windows 窗体中的帐户 id 文本框值 1 中。我使用 Microsoft Access 2007 数据库。
感谢您的帮助。
【问题讨论】:
标签: c# winforms ms-access-2007