[英]How to Check if record exist in database using Entity Framework in ASP.NET MVC razor?
Is it possible for a controller to check if record exists in database using ADO.NET? 控制器是否可以使用ADO.NET检查数据库中是否存在记录?
Here is my controller 这是我的控制器
[HttpPost]
public ActionResult Add(TemporaryVoucher temporaryVoucher)
{
string fileName = Path.GetFileNameWithoutExtension(temporaryVoucher.ImageFile.FileName);
string extension = Path.GetExtension(temporaryVoucher.ImageFile.FileName);
fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension;
/*temporaryVoucher.VoucherPath = "/Image/" + fileName;
fileName = Path.Combine(Server.MapPath("/Image/"), fileName);*/
temporaryVoucher.VoucherPath = fileName;
using (DBModels db = new DBModels())
{
db.TemporaryVouchers.Add(temporaryVoucher);
db.SaveChanges();
}
ModelState.Clear();
return View();
}
Here is my ado.net in model 这是我的ado.net模型
public partial class TemporaryVoucher
{
public int PromoKey { get; set; }
public string PromoName { get; set; }
[DisplayName("Upload Image")]
public string VoucherPath { get; set; }
public HttpPostedFileBase ImageFile { get; set; }
}
Here is my view 这是我的看法
<div class="form-group">
@*Html.LabelFor(model => model.ImageName)*@
<label name="PromoName" style="text-align: right; clear: both; float:left;margin-right:15px;">PromoName</label>
<div class="col-md-10">
@*Html.EditorFor(model => model.ImageName, new { htmlAttributes = new { @class = "form-control", required = "required" } })
@Html.ValidationMessageFor(model => model.ImageName, "", new { @class = "text-danger" })*@
<input type="text" name="PromoName" id="txtInput" onkeypress="return checkSpcialChar(event)" required />
</div>
</div>
<div class="form-group">
@*Html.LabelFor(model => model.ImagePath, htmlAttributes: new { @class = "control-label col-md-2" })*@
<label name="ImagePath" style="text-align: right; clear: both; float:left;margin-right:15px;margin-top:5px;">Upload Image</label>
<div class="col-md-10">
<input type="file" style="margin-top:5px;" name="ImageFile" accept=".jpg,.jpeg,.png" required />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Upload" style="margin-top:5px;" class="btn btn-default" />
</div>
</div>
</div>
I just want to ensure no possible duplication for PromoName in the database 我只想确保数据库中PromoName不可能重复
You can perform a 'get' within your controller action based on any identity column to check for an existing value in the database. 您可以根据任何标识列在控制器操作中执行“获取”,以检查数据库中的现有值。 If present, return with a message, else add the incoming model to the database. 如果存在,则返回一条消息,否则将传入的模型添加到数据库中。 Something like this: 像这样:
using (DBModels db = new DBModels())
{
TemporaryVoucher tv = (from t1 in db.TemporaryVouchers
where t1.PromoKey == temporaryVoucher.PromoKey // any identifier comparison can be done here
select t1).FirstOrDefault();
if(tv != null)
// return with a message that incoming temporary voucher already exists
db.TemporaryVouchers.Add(temporaryVoucher);
db.SaveChanges();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.