繁体   English   中英

如何检查我的数据库中是否已经存在一个值并在ASP.NET和实体框架中显示验证消息

[英]How to check if a value already exists in my database and show a validation message in ASP.NET & Entity Framework

我正在做。 我想检查用户名是否已插入数据库中。

Mst_Users obj = new Mst_Users();
obj.UserName = txtUserName.Text;

obj.ContactNo = txt_ContactNo.Text.Trim();
obj.Address = txt_Address.Text;
obj.CreatedBy = LoginHandler.UserData.UserId;
obj.CreatedOn = DateTime.Now;
obj.IsActive = true;
obj.PasswordHash = Password;
obj.RoleId = Convert.ToInt32(chkRoles.SelectedValue);
obj.OtherDetails = txt_OtherDetails.Text;
objEntity.Mst_Users.Add(obj);

int result = objEntity.SaveChanges();

if (result > 0)
{
    MessageBox("Record Added Succesfully");
    txtUserName.Text = string.Empty;
    txt_ContactNo.Text = string.Empty;
    txt_Address.Text = string.Empty;
    txt_OtherDetails.Text = string.Empty;
    chkRoles.ClearSelection();
}

首先,您需要检查使用此用户名的用户是否存在,在使用任何添加/保存代码之前,需要执行此操作。

通常情况下,这样做是这样的

var user = yourDbContext.Where(u=>u.UserName == "UserNameYouWantToCheck").FirstOrDefault();

if(user!=null)
    throw new ArgumentException(); //or do whatever you want to do when an user like this exists

//code for adding your user to the application db context and for saving the data.

至于依赖的验证方法,如果您正在执行MvC项目,则可以使用ModelState,可以检查模型是否有效并从中访问验证消息。 但是,如果您正在做其他项目,而您刚刚从github添加了EF,则可以使用Validator,下面是一个示例:

public static bool IsValid(object model)
        {
            var context = new ValidationContext(model, null, null);
            var results = new List<ValidationResult>();

            if (Validator.TryValidateObject(model, context, results, true))
            {
                return true;
            }

            return false;
        }

然后只需将要检查的模型类型对象作为参数传递给此IsValid方法,然后可以在结果列表中检查验证消息

专家提示。 在开始了解EF之前,请先阅读有关linq的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM