【发布时间】:2018-11-20 20:19:54
【问题描述】:
我需要在更新我的数据库之前检查输入是否有效。
我创建了一个 bool 方法来检查它是否有效。
private bool validProject(string ProjectID)
{
using (AXEntitiesDEV db = new AXEntitiesDEV())
{
return db.PROJTABLEs.Any(c => c.PROJID==ProjectID);
}
}
并且正在我的更新方法中检查它。
protected void Insert(object sender, EventArgs e)
{
using (GPSE2Entities entities = new GPSE2Entities())
{
TextBox txtEditTime = (TextBox)gvDailyGPS.FooterRow.FindControl("txtFooterTime");
DropDownList ddlEventDateOnly = (DropDownList)gvDailyGPS.FooterRow.FindControl("ddlFooterDateOnly");
DateTime EDT = DateTime.Now;
TextBox txtAddProjectID = (TextBox)gvDailyGPS.FooterRow.FindControl("txtAddProjectID");
validProject(txtAddProjectID.Text);
DailyGPSTable newLOB = new DailyGPSTable
{
EventDateTime = EDT,
Project = txtAddProjectID.Text,
};
entities.DailyGPSTables.Add(newLOB);
{
entities.SaveChanges();
BindGrid();
}
entities.SaveChanges();
}
}
我尝试捕获并报告错误,但它允许在 false 时进行无效输入。
try
{
validProject(txtAddProjectID.Text);
}
catch (ArgumentException)
{
addErr.Text = "";
addErr.Text = "Invalid Project ID.";
}
在尝试插入之前,我可以捕获并报告错误的最佳方法是什么?
【问题讨论】:
-
当您可以简单地获取返回值并设置错误文本没有任何问题时,为什么要抛出一个代价高昂的异常?
-
这似乎是XY problem。
-
如果此条件(其中之一)为真,我需要停止处理数据库插入。
-
请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。
-
@DougFarrell 除非你用minimal reproducible example 更好地解释实际问题,否则那些试图帮助你的人将无法正确解决问题。