首页 新闻 会员 周边 捐助

EF 添加用户注册

0
悬赏园豆:5 [已解决问题] 解决于 2015-12-07 22:57

刚接触EF,了解不多还请大神们帮助!!!!

if (ModelState.IsValid)
{
string code=Request["txtRUValidetaCode"];
if (!string.IsNullOrEmpty(code))
{
if (Session["code"] != null)
{
if (Session["code"].ToString().ToLower().Equals(code.ToLower()))
{
model.U_id = System.Guid.NewGuid().ToString();
model.U_pwd = MD5.LoadMD5(model.U_pwd);//密码加密后 数据存储不了,不执行
DbEntityEntry<U_user> enty = db.Entry(model);
enty.State = System.Data.EntityState.Added;

db.SaveChanges();
return Json(new { State = "ok", Msg = "注册成功" });
}
else
{
return Json(new { State = "Yanzhenma", Msg = "验证码错误!" });
}
}
else
{
return Json(new { State = "Yanzhenma", Msg = "验证码过期!" });
}
}
else
{
return Json(new { State = "Yanzhenma", Msg = "请输入验证码!" });
}
}
return Json(new { State = "Error", Msg = "控件值校验失败!" });

EF
依然照旧的主页 依然照旧 | 初学一级 | 园豆:133
提问于:2015-12-06 15:07
< >
分享
最佳答案
0

DbContext.U_user.Add(model);
int intResult = DbContext.SaveChanges();

// 返回执行结果
return intResult > 0 ? true : false;

 

这里我想告诉你一个你代码的问题:你的if嵌套的太多了

你可以适当这样修改一下

if (string.IsNullOrEmpty(code))
{

return Json(new { State = "Yanzhenma", Msg = "请输入验证码!" });

}
...
... DbContext.U_user.Add(model);
int intResult = DbContext.SaveChanges(); // 返回执行结果 return intResult > 0 ? true : false;

 

收获园豆:5
澈澈 | 菜鸟二级 |园豆:440 | 2015-12-07 11:21

你好,我这里的if 多 是判断【验证码】和mvc中校验 的 ,跟增加数据 没有关系,

我这里用的EF写的增加数据:

model.U_id = System.Guid.NewGuid().ToString();
model.U_pwd = MD5.LoadMD5(model.U_pwd);
DbEntityEntry<U_user> enty = db.Entry(model);
enty.State = System.Data.EntityState.Added;

db.SaveChanges(); //密码加密后 数据存储不了,不执行,如果说把密码加密这句注释的话 ,就可以执行了,我认为是我的上下文 变了,但是代码要怎么改呢,不知道怎么写了

依然照旧 | 园豆:133 (初学一级) | 2015-12-07 11:28

@依然照旧: 1,我没说你if跟你加数据有关,我是说你这样写if会死人,然后给你贴了一个if的使用方法

2,首先你得把你的错误贴出来才能知道什么原因,可能是加密后数据太长导致的,如果是修改一下数据库里这个字段的长度

澈澈 | 园豆:440 (菜鸟二级) | 2015-12-07 11:33

@依然照旧: 关于if这块再补充一下,使用if最好不要嵌套超过3层.

澈澈 | 园豆:440 (菜鸟二级) | 2015-12-07 11:37

@澈澈:恩,好的非常感谢宝贵意见,谢谢,以后 改正,哈哈!!

             但是关于插入语句,我也纳闷,关键是它不报错 也不执行 ,怎么办,我数据库中存这个字段的类型是nvarchar(64)

依然照旧 | 园豆:133 (初学一级) | 2015-12-07 11:38

@依然照旧: 怎么可能不报错也不执行...肯定是有问题的,你分步跟一下代码看看吧

澈澈 | 园豆:440 (菜鸟二级) | 2015-12-07 11:45

@澈澈:这样写IF 可以吗

[HttpPost]
public JsonResult UserRisterAdd(U_user model)
{
if (!ModelState.IsValid)
return Json(new { State = "Error", Msg = "控件值校验失败!" });

string code = Request["txtRUValidetaCode"];

if (string.IsNullOrEmpty(code))
return Json(new { State = "Yanzhenma", Msg = "请输入验证码!" });

if (Session["code"] == null)
return Json(new { State = "Yanzhenma", Msg = "验证码过期!" });

if (Session["code"].ToString().ToLower().Equals(code.ToLower()))
{

model.U_id = System.Guid.NewGuid().ToString();
//model.U_pwd = MD5.LoadMD5(model.U_pwd);
DbEntityEntry<U_user> enty = db.Entry(model);
enty.State = System.Data.EntityState.Added;
db.SaveChanges();
return Json(new { State = "ok", Msg = "注册成功" });
}
else
{
return Json(new { State = "Yanzhenma", Msg = "验证码错误!" });
}
}

依然照旧 | 园豆:133 (初学一级) | 2015-12-07 11:47

@依然照旧: 棒棒的,不过最后一个验证码错误的判断也可以像上面一样写,这样你调试起来,读起代码来是不是就方便多了.

澈澈 | 园豆:440 (菜鸟二级) | 2015-12-07 11:57

@澈澈: 

依然照旧 | 园豆:133 (初学一级) | 2015-12-07 13:50

@澈澈: 怎么办呀!!求支招呀大神!!!!

依然照旧 | 园豆:133 (初学一级) | 2015-12-07 14:48
其他回答(1)
0

新建一个实体做验证,另外一个实体做存储

依然照旧 | 园豆:133 (初学一级) | 2015-12-07 22:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册