public void insertJoin(memDB insertDB)//회원가입시 insert 기능. { try { connectDB(); mCommand.CommandText = "insert into member(mem_name, mem_password, mem_department, mem_position, mem_jobyear, mem_number, mem_session)" + " values('" + insertDB.mem_name + "','" + insertDB.mem_password + "','" + insertDB.mem_department + "','" + insertDB.mem_position + "'," + insertDB.mem_jobyear + ",'" + insertDB.mem_number + "',0)"; // 쿼리문 mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행 closeDB(); //DB 연결통로를 닫는다 (이하동일) } catch (Exception e) { closeDB(); Console.WriteLine(e.ToString()); } }
private MySqlDataReader mDataReader; // 실행문 //*DB public bool selectlogin(memDB selectDB) { try { connectDB(); mCommand.CommandText = "Select mem_password from member where mem_number = '" + selectDB.mem_number + "'"; mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행 if (mDataReader.Read()) //존재하는지 확인 { string pw = mDataReader["mem_password"].ToString(); //패스워드 확인 if (pw == selectDB.mem_password) { closeDB();//DB 연결통로를 닫는다 (이하동일) return(true); } else { closeDB();//DB 연결통로를 닫는다 (이하동일) return(false); } } else { closeDB(); return(false); } } catch (Exception e) { closeDB(); Console.WriteLine(e.ToString()); return(false); } }
public void chat() //각종 기능들 코딩할 공간.-------------------------------------------------------------------------------- { bool joinQ = false; //회원가입시 플레그 MessageDB msDB = new MessageDB(); string firstQ; //최초신호받을 변수 //MessageDB msDB=new MessageDB(); string streamStr; //실시간 메시지 받을 변수 //클라이언트의 데이터를 읽고, 쓰기 위한 스트림을 만든다. stream = new NetworkStream(socket); Encoding encode = Encoding.GetEncoding("utf-8"); reader = new StreamReader(stream, encode); writer = new StreamWriter(stream, encode) { AutoFlush = true }; try { while (true) { //최초 신호 받아오기. firstQ = reader.ReadLine(); if (firstQ == "회원가입") //회원가입을 한다는 신호가 왔을 경우 { makeMember_num mknum = new makeMember_num(); //사원번호를 만들기위한 클레스 변수 선언. mapperDB joinDB = new mapperDB(); //회원가입 정보를 DB에 넣기위한 클레스 변수 선언. memDB insertDB = new memDB(); //이름 비밀번호 직책 부서 입사년도 사원번호 세션 부재메시지 구독자 while (true) { streamStr = reader.ReadLine(); string[] split = streamStr.Split(new String[] { "/" }, StringSplitOptions.None);// '/'를 기준으로 문자열을 나눠 배열에 저장함. if (split[0] == "") { writer.WriteLine("이름오류"); //처리 continue; } else { insertDB.mem_name = split[0]; if (split[1] == "") { writer.WriteLine("비밀번호를 넣어주세요"); continue; } else { insertDB.mem_password = split[1]; if (split[2] == "") { writer.WriteLine("직책을 넣어주세요"); //처리 continue; } else { insertDB.mem_position = split[2]; if (split[3] == "") { writer.WriteLine("부서을 넣어주세요"); //처리 continue; } else { insertDB.mem_department = split[3]; if (split[4] == "") { writer.WriteLine("입사년도"); //처리 continue; } else { insertDB.mem_jobyear = int.Parse(split[4]); insertDB.mem_number = mknum.mknum(insertDB.mem_jobyear.ToString(), insertDB.mem_department.ToString(), insertDB.mem_position.ToString()); //사원번호 생성과 동시에 전달. try //회원가입 성공 { joinDB.insertJoin(insertDB); //회원가입 시도. writer.WriteLine("성공"); writer.WriteLine(insertDB.mem_number); MyVariables.join_member = insertDB.mem_name + "(" + insertDB.mem_number + ")"; } catch//회원가입 실패 { writer.WriteLine("회원가입 실패 코드오류"); } stream.Close(); } } } } } break; } //stream.Close(); socket_close("socket");//실험 joinQ = true; } else if (firstQ == "로그인") { //로그인 한다는 신호가 왔을 경우 memDB selectDB = new memDB(); mapperDB login = new mapperDB(); // 로그인 정보를 DB에서 가져오기 위한 클레스 변수 선언. //로그인 할 정보를 받아옴 streamStr = reader.ReadLine(); // '/'이거 기준으로 스플릿. selectDB.사원번호 / 비번 <= 가져온거 집어넣기 string[] split = streamStr.Split(new String[] { "/" }, StringSplitOptions.None); selectDB.mem_number = split[0]; selectDB.mem_password = split[1]; try //로그인 성공 { bool log_check = login.selectlogin(selectDB); //id 존재 유무 확인. if (log_check) { writer.WriteLine("로그인 성공"); mem_num = split[0]; msDB.mem_num = mem_num; MyVariables.temp_number = mem_num; //현재 접속한 사람. MyVariables.mem_cnt++; //접속자 수 +1 break; } else { writer.WriteLine("다시 시도"); firstQ = reader.ReadLine(); } } catch//로그인 오류 { writer.WriteLine("로그인 실패 코드오류"); } //writer.WriteLine("로그인 완료"); } if (MyVariables.end_flag) { break;//모든 흐름 종료하기위한 플레그 } } //-------------------------------------여기까지함.스트림을 크게 한개 더연결해야 할듯하다.(성공) while (true) //로그인 후 지속적인 stream 기능을 구현할 공간.//검색기능, 전송기능, 구독기능 등등 { if (MyVariables.end_flag) { break;//모든 흐름 종료하기위한 플레그 } if (joinQ) { break; } string str = reader.ReadLine(); //클라이언트한태 메시시 수신 string[] split = str.Split(new String[] { "/" }, StringSplitOptions.None); //0: 신호 , 1: 메시지 내용 if (split[0] == "전송") { msDB.insertMessage(split[1]);//전송받은 내용을 사원번호, 시간, 내용, 구독자수 로 구성하여 repository DB에넣음. writer.WriteLine("성공"); } else if (str == "검색") { List <string> getsublist = new List <string>(); string listData = ""; //검색기능 mapperDB searchDB = new mapperDB();//회원가입 정보를 DB에 넣기위한 클레스 변수 선언. // 입력값 받아옴 string getName = reader.ReadLine(); string getPosition = reader.ReadLine(); string getDeaprtment = reader.ReadLine(); try { // 검색함수 돌려서 나온값 넣기 getsublist = searchDB.selectSearchName(getName, getPosition, getDeaprtment); for (int i = 0; i < getsublist.Count; i++) { listData += getsublist[i]; // listData라는 변수에 리스트값을 다 더해서 넣어버림 } writer.WriteLine(listData); // listData 클라이언트쪽으로 반환 } catch { writer.WriteLine("실패 코드오류"); } } else if (str == "구독취소") { string getCheckData = ""; string getMemNumber = mem_num; List <string> sucessCheck = new List <string>(); string listData = ""; mapperDB subDB = new mapperDB(); memDB selectDB = new memDB(); getCheckData = reader.ReadLine(); try { sucessCheck = subDB.Findthendelete(getCheckData, getMemNumber); for (int i = 0; i < sucessCheck.Count; i++) { listData += sucessCheck[i]; // listData라는 변수에 리스트값을 다 더해서 넣어버림 } writer.WriteLine(listData); // listData 클라이언트쪽으로 반환 } catch { writer.WriteLine("실패 코드오류"); } } else if (str == "구독") { string getCheckData = ""; string getMemNumber = mem_num; List <string> sucessCheck = new List <string>(); string listData = ""; mapperDB subDB = new mapperDB(); memDB selectDB = new memDB(); getCheckData = reader.ReadLine(); try { sucessCheck = subDB.insertSub(getCheckData, getMemNumber); for (int i = 0; i < sucessCheck.Count; i++) { listData += sucessCheck[i]; // listData라는 변수에 리스트값을 다 더해서 넣어버림 } writer.WriteLine(listData); // listData 클라이언트쪽으로 반환 } catch { writer.WriteLine(""); } } else if (str == "로그인구독목록") { string getNumber = reader.ReadLine(); string listData = ""; mapperDB putDataToListDB = new mapperDB(); List <string> getsubedlist = new List <string>(); try { getsubedlist = putDataToListDB.LoadFormPutData(getNumber); for (int i = 0; i < getsubedlist.Count; i++) { listData += getsubedlist[i]; // listData라는 변수에 리스트값을 다 더해서 넣어버림 } writer.WriteLine(listData); // listData 클라이언트쪽으로 반환 } catch { writer.WriteLine("실패 코드오류"); } } else { writer.WriteLine("실패");//테스트 디버깅 } } socket_close("socket"); } catch (Exception e) { socket_close("socket"); } }