C# 当数据库为空时显示消息框
谢谢你看我的问题。基本上,当用户单击按钮时,它会根据数据库的内容在消息框中显示以下内容之一:您的假期已被授权、您的假期已被拒绝或您的假期请求已发送 我希望这样,当用户单击按钮时,数据库中没有任何数据,因为用户没有发送假日请求,就会收到一个消息框,说他们没有预订假日 这是我的密码:C# 当数据库为空时显示消息框,c#,sql,database,forms,messagebox,C#,Sql,Database,Forms,Messagebox,谢谢你看我的问题。基本上,当用户单击按钮时,它会根据数据库的内容在消息框中显示以下内容之一:您的假期已被授权、您的假期已被拒绝或您的假期请求已发送 我希望这样,当用户单击按钮时,数据库中没有任何数据,因为用户没有发送假日请求,就会收到一个消息框,说他们没有预订假日 这是我的密码: private void button2_Click_1(object sender, EventArgs e) { System.Windows.Forms.Form
private void button2_Click_1(object sender, EventArgs e)
{
System.Windows.Forms.Form f = System.Windows.Forms.Application.OpenForms["Login"];
SundownDatabaseEntities6 db = new SundownDatabaseEntities6();
int id = Convert.ToInt32(((Login)f).idTb.Text);
var getrecords = db.Holidays.Where(a => a.Id == id).ToList();
foreach (var record in getrecords)
{
if (record.YesOrNo == "yes")
{
MessageBox.Show("The manager has accepted your holiday (From " + record.Datefrom + " - " + record.Dateto + ").");
}
else if (record.YesOrNo == "no")
{
MessageBox.Show("The manager has declined your holiday request (" + record.Datefrom + " - " + record.Dateto + ").");
}
else if (record.YesOrNo == null)
{
MessageBox.Show("Your holiday request (" + record.Datefrom + " - " + record.Dateto + ") has been sent.\nWaiting for manager to authorise it...");
}
else if (record != null)
{
MessageBox.Show("You have not booked an holiday.");
}
}
}
问题在于代码的最后一位,“else if(record!=null)”不会检查数据库是否为空。有什么建议吗?谢谢 您应该检查
getrecords.Count()
或
因为如果
getrecords
为空,它将不会转到foreach
。您应该检查getrecords.Count()
或
因为如果
getrecords
为空,它将不会转到foreach
。在循环之前,您可以检查如果(!db.Holidays.Any(a=>a.Id==Id))
并显示“no holiday requested”消息并返回wo而不进入循环。在检查record.YesOrNo之前,您必须先检查'record'是否为数字。若记录为空,那个么您将在record.YesOrNo上得到一个异常。您没有异常处理程序,因此异常会跳转到代码中的其他位置。在循环之前,您可以检查如果(!db.Holidays.Any(a=>a.Id==Id))
并显示“no holiday requested”消息并返回wothout而不进入循环。在检查record.YesOrNo之前,您必须检查“record”是否为数字。若记录为空,那个么您将在record.YesOrNo上得到一个异常。您没有异常处理程序,因此异常会跳转到代码中的其他位置。
var getrecords = db.Holidays.Where(a => a.Id == id).ToList();
if (getrecords.Count() == 0)
{
// ... here your logic
}
if (!db.Holidays.Any ())