public IActionResult UserModify(int userNo) //update로 db 에 save { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 일 경우 로그인페이지로 return(RedirectToAction("UserLogin", "User")); } using (var db = new AspnetCoreStudyDbContext()) { var user = db.Members.FirstOrDefault(n => n.UserNo.Equals(userNo)); //userNo의 정보를 받는거 return(View(user)); } }
[HttpPost]//회원가입 전송 public IActionResult UserJoin(Member model) { if (ModelState.IsValid) { using (var db = new AspnetCoreStudyDbContext()) { _ = db.Members.Add(model); _ = db.SaveChanges(); //commit } return(RedirectToAction("Index", "Home")); //HomeController 의 Index Action을 실행 -> 페이지 이동 } return(View(model)); }
public IActionResult PostDetail(int postNo) //게시물 상세보기 { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 return(RedirectToAction("UserLogin", "User")); } using (var db = new AspnetCoreStudyDbContext()) { //var post = db.Posts.FirstOrDefault(n => n.PostNo.Equals(postNo)); //postNo의 정보를 받는거 var post = db.Posts.Include(u => u.Member).Where(c => c.PostNo.Equals(postNo)).ToList(); return(View(post)); } }
public IActionResult UserActivity(int userNo) { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 일 경우 로그인페이지로 return(RedirectToAction("UserLogin", "User")); } using (var db = new AspnetCoreStudyDbContext()) { //var user = db.Members.FirstOrDefault(n => n.UserNo.Equals(userNo)); //userNo의 정보를 받는거 var user = db.Posts.Include(u => u.Member).Where(c => c.UserNo.Equals(HttpContext.Session.GetInt32("USER_LOGIN_KEY"))).ToList(); //사용자의 게시물이 하나도 없을경우 사용자의 기본 정보만 보내준다 if (user.Count == 0) { var user1 = db.Members.FirstOrDefault(n => n.UserNo.Equals(userNo)); return(View(user1)); } return(View(user)); } }
public IActionResult Index() { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 return(RedirectToAction("UserLogin", "User")); } using (var db = new AspnetCoreStudyDbContext()) { //var list = db.Posts.ToList(); var list = db.Posts.Include(u => u.Member).ToList(); //EntityFrameworkCore의 Include를 이용한 테이블 조인 //테이블 Join을 통해 UserId 추출 /*var list1 = from ps in db.Posts * join mb in db.Members on ps.UserNo equals mb.UserNo * select new { UserId = mb.UserId };*/ //, ps.PostContent, ps.PostGroup, ps.PostViews, ps.PostTittle, ps.PostNo, ps.PostReg //var list3 = db.Posts.Join(db.Members, ps => ps.PostNo, mb => mb.UserNo, (ps, mb) => new { Post = ps, Member = mb }); return(View(list)); } }
public IActionResult UserModify(Member model) { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 일 경우 로그인페이지로 return(RedirectToAction("UserLogin", "User")); } model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString()); if (ModelState.IsValid) { using (var db = new AspnetCoreStudyDbContext()) { db.Entry(model).State = EntityState.Modified; if (db.SaveChanges() > 0) { return(RedirectToAction("Index", "Home")); } } ModelState.AddModelError(string.Empty, "변경 사항을 저장 할 수 없습니다."); } return(View(model)); }
public IActionResult PostAdd(Post model) { if (HttpContext.Session.GetInt32("USER_LOGIN_KEY") == null) { //로그인이 안된 상태 return(RedirectToAction("UserLogin", "User")); } model.UserNo = int.Parse(HttpContext.Session.GetInt32("USER_LOGIN_KEY").ToString()); if (ModelState.IsValid) { using (var db = new AspnetCoreStudyDbContext()) { db.Posts.Add(model); if (db.SaveChanges() > 0) { //return RedirectToAction("Index", "Home"); //다른 Controller의 view로 이동 return(Redirect("Index")); //동일한 Controller내에서 처리 } } ModelState.AddModelError(string.Empty, "게시물을 저장 할 수 없습니다."); } return(View(model)); }
[HttpPost]//로그인 전송 public IActionResult UserLogin(LoginViewModel model) { //Id,Pw 필수 if (ModelState.IsValid) { using (var db = new AspnetCoreStudyDbContext()) { //Linq - 메서드 체이닝 // => : A to go B var user = db.Members.FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPw.Equals(model.UserPw)); if (user != null) { //로그인 성공했을때 //HttpContext.Session.SetInt32(key, value); HttpContext.Session.SetInt32("USER_LOGIN_KEY", user.UserNo); return(RedirectToAction("LoginSuccess", "Home")); // 로그인 성공 페이지로 이동 } } //로그인 실패했을때 ModelState.AddModelError(string.Empty, "사용자 ID 혹은 비밀번호가 올바르지 않습니다."); } return(View(model)); }
public IActionResult Index() { using (var db = new AspnetCoreStudyDbContext()) { string ConnectString = @"Server=localhost;Database=AspnetCoreStudyDb;User Id=sa;Password = 1234; "; //연결할 DB문 DataTable dt = new DataTable(); // Select문 일경우 SqlConnection conn = new SqlConnection(ConnectString); //연결문을 통해 DB 연결 SqlCommand cmd = new SqlCommand(); //SQL커맨드 선언 conn.Open(); //DB를 여는 코드 cmd.CommandType = CommandType.StoredProcedure; //SQLCommand에서 사용할 커멘드 타입 형식 지정 cmd.CommandText = "POST_LIST"; //불러올 프로시저명 지정 cmd.Parameters.Add("@PostGroup", SqlDbType.Int); //프로시저에서 선언한 변수명과 데이터형 지정 cmd.Parameters["@PostGroup"].Value = 0; // 프로시저 변수에 입력할 값 혹은 변수 지정 cmd.Connection = conn; //SQL커맨드가 앞에서 선언한 DB로 연결 SqlDataAdapter da = new SqlDataAdapter(); // Select문 일경우에는 이렇게 연결 da.SelectCommand = cmd; da.Fill(dt); //DataTable형식을 Ienumerable로 변환 var posts = new List <Post>(); foreach (DataRow dr in dt.Rows) { var post = new Post { PostNo = Convert.ToInt32(dr["PostNo"]), PostContent = Convert.ToString(dr["PostContent"]), PostGroup = Convert.ToInt32(dr["PostGroup"]), PostReg = Convert.ToDateTime(dr["PostReg"]), PostTittle = Convert.ToString(dr["PostTittle"]), PostViews = Convert.ToInt32(dr["PostViews"]) }; posts.Add(post); } conn.Dispose(); ////////////////////////////////////////////////////////ViewBag을 이용한 DB값 넘기기 DataTable dt2 = new DataTable(); string ConnectString2 = @"Server=localhost;Database=AspnetCoreStudyDb;User Id=sa;Password = 1234; "; //연결할 DB문 SqlCommand cmd2 = new SqlCommand(); //SQL커맨드 선언 SqlConnection conn2 = new SqlConnection(ConnectString2); //연결문을 통해 DB 연결 conn2.Open(); cmd2.CommandType = CommandType.StoredProcedure; //SQLCommand에서 사용할 커멘드 타입 형식 지정 cmd2.CommandText = "POST_LIST"; //불러올 프로시저명 지정 cmd2.Parameters.Add("@PostGroup", SqlDbType.Int); //프로시저에서 선언한 변수명과 데이터형 지정 cmd2.Parameters["@PostGroup"].Value = 1; // 프로시저 변수에 입력할 값 혹은 변수 지정 cmd2.Connection = conn2; //SQL커맨드가 앞에서 선언한 DB로 연결 SqlDataAdapter da2 = new SqlDataAdapter(); // Select문 일경우에는 이렇게 연결 da2.SelectCommand = cmd2; da2.Fill(dt2); var posts2 = new List <Post>(); foreach (DataRow dr in dt2.Rows) { var post = new Post { PostNo = Convert.ToInt32(dr["PostNo"]), PostContent = Convert.ToString(dr["PostContent"]), PostGroup = Convert.ToInt32(dr["PostGroup"]), PostReg = Convert.ToDateTime(dr["PostReg"]), PostTittle = Convert.ToString(dr["PostTittle"]), PostViews = Convert.ToInt32(dr["PostViews"]) }; posts2.Add(post); ViewBag.post2 = posts2; } return(View(posts.AsEnumerable())); } }