성적 관리: 비연결 기반
2011. 7. 10. 01:41
반응형
public partial class select : System.Web.UI.Page
{
SqlConnection conn; // SQL 데이터베이스 연결용
SqlCommand cmdSelect; // SQL 서버에 대해 실행할 문장
SqlDataAdapter adapter; //DataSet을 채우고 DB를 업데이트 할 데이터 명령을 저장
DataSet dataset; // 메모리 내의 데이터 캐시
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("server=(local);database=주소록;uid=sa;pwd=romantic;"); // 주소록 DB 연결
SqlCommand comm = new SqlCommand("select * from tblstudent", conn); // tblstudent 테이블 선택
SqlDataAdapter adapter = new SqlDataAdapter(); // SQL DB를 업데이트하는 데 사용할 데이터 명령 집합과 DB 연결
adapter.SelectCommand = comm; // 위에 있는 comm과 연결
DataSet dataset = new DataSet(); // dataset이라고 하는 DataSet(메모리 안의 DB 캐시) 생성
adapter.Fill(dataset, "tblstudent"); // dataset을 tblstudent로 채운다.
DataTable table = dataset.Tables["tblstudent"]; // table에 dataset으로 내용 채우기
DataRow[] row = table.Select(); // row에 table 저장
// 본문 시작
Response.Write("<center><h2>성적 검색_비연결기반</h2><hr><br><br>");
Response.Write("<p>성적 확인을 위해 이름을 클릭하시오<br><br>");
Response.Write("<table border=1 width=450>");
Response.Write("<tr><th>번호<th>이름<th>전화번호<th>주소");
// 자료의 수만큼 출력
for (int i = 0; i < row.Length; i++)
{
Response.Write("<tr align=center>");
Response.Write("<td>" + row[i]["num"]);
Response.Write("<td> <a href=login.aspx?id=" + row[i]["num"] + ">" + row[i]["name"] + "</a>");
Response.Write("<td>" + row[i]["tel"]);
Response.Write("<td>" + row[i]["addr"]);
}
Response.Write("</td></tr></table><p /><a href=main.aspx>[ 메인페이지 ]</a>");
}
}
public partial class login : System.Web.UI.Page
{
SqlConnection conn; // SQL 데이터베이스 연결용
SqlCommand cmdSelect; // SQL 서버에 대해 실행할 문장
SqlDataAdapter adapter; //DataSet을 채우고 DB를 업데이트 할 데이터 명령을 저장
DataSet dataset; // 메모리 내의 데이터 캐시
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
conn = new SqlConnection("server=(local);database=주소록;uid=sa;pwd=romantic;"); // 주소록 DB 연결
cmdSelect = new SqlCommand("select * from tblstudent", conn); // tblstudent 테이블 선택
adapter = new SqlDataAdapter(); // SQL DB를 업데이트하는 데 사용할 데이터 명령 집합과 DB 연결
adapter.SelectCommand = cmdSelect; // 위에서 정의한 cmdSelect와 연결해줌
dataset = new DataSet(); // dataset이라고 하는 DataSet(메모리 안의 DB 캐시) 생성
adapter.Fill(dataset, "tblstudent"); // dataset을 tblstudent로 채운다
string hak = Request.QueryString["id"]; // 이전 페이지의 id 정보를 저장
string user_id, pass; // 사용자 id, password 저장할 공간
DataTable table = dataset.Tables["tblstudent"]; // table 에 tblstudent로 내용 채우기
DataRow[] orow = table.Select("num='" + hak + "'"); // 테이블의 num과 hak 일치여부확인
user_id = orow[0]["id"].ToString(); // user_id에 id 정보 저장
pass = orow[0]["pass"].ToString(); // pass에 password 정보 저장
if (user_id == TextBox1.Text) // 사용자 이름과 textbox1의 일치여부 비교
{
if (pass != TextBox2.Text) // 비밀번호 일치여부 비교
Response.Write("<script>alert('비밀번호가 일치하지 않습니다.');history.back();</script>");
else // 비밀번호까지 맞으면 analysis.aspx로 이동(성적을 특정하기 위한 hak 변수 넘겨줌)
Response.Redirect("analysis.aspx?id=" + hak);
}
else // 아이디가 존재하지 않을 때
Response.Write("<script>alert('존재하지 않는 아이디 입니다.');history.back();</script>");
}
protected void Button2_Click(object sender, EventArgs e) // 취소 버튼
{
Response.Redirect("select.aspx");
}
}
public partial class analysis : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string idd = Request.QueryString["id"]; // 이전 페이지의 id값을 받아옴
SqlConnection conn = new SqlConnection("Server=(local);Database=주소록;uid=sa;pwd=romantic;"); // 주소록 DB 연결
SqlCommand comm = new SqlCommand("select * from tblstudent", conn); // tblstudent 테이블 선택
SqlDataAdapter adapter = new SqlDataAdapter(); // SQL DB를 업데이트하는 데 사용할 데이터 명령 집합과 DB 연결
adapter.SelectCommand = comm; // 위에서 정의한 comm와 연결해줌
DataSet dataset = new DataSet(); // dataset이라고 하는 DataSet(메모리 안의 DB 캐시) 생성
adapter.Fill(dataset, "tblstudent"); // dataset을 tblstudent로 채운다
DataTable table = dataset.Tables["tblstudent"]; // table에 tblstudent 저장
DataRow[] row = table.Select("num=" + idd); // num이 idd와 일치하는 것을 선택해서 저장
// 본문시작
Response.Write("<center><h2>" + row[0]["name"] + "님의 성적분석</h2><hr><br>");
Response.Write("<table border=1 width=300>");
Response.Write("<tr><th>번호 <td align=center>" + row[0]["num"]); // 각 성적 출력
Response.Write("<tr><th>국어 <td align=center>" + row[0]["kor"]);
Response.Write("<tr><th>영어 <td align=center>" + row[0]["eng"]);
Response.Write("<tr><th>수학 <td align=center>" + row[0]["mat"]);
Response.Write("<tr><th>과학 <td align=center>" + row[0]["sci"]);
// 총 합
int ss = (int)row[0]["kor"] + (int)row[0]["eng"] + (int)row[0]["mat"] + (int)row[0]["sci"];
double av = ss / 4.0; // 평균
string gr; // 학점
switch ((int)(av / 10.0)) // 학점은 평균을 10으로 나누어 계산
{
case 10:
case 9:
gr = "A";
break;
case 8:
gr = "B";
break;
case 7:
gr = "C";
break;
case 6:
gr = "D";
break;
default:
gr = "F";
break;
}
Response.Write("<tr><th>합계 <td align=center>" + ss); // 합계
Response.Write("<tr><th>평균 <td align=center>" + Math.Round(av, 2)); // 평균 출력
Response.Write("<tr><th>학점 <td align=center>" + gr); // 학점
Response.Write("</table>");
Response.Write("<br><br><p> [<a href=select.aspx>검색페이지</a>]");
}
}
public partial class input : System.Web.UI.Page
{
SqlConnection conn; // SQL 데이터베이스 연결용
SqlCommand cmdSelect, cmdInsert; // SQL 서버에 대해 실행할 문장
SqlDataAdapter adapter; //DataSet을 채우고 DB를 업데이트 할 데이터 명령을 저장
DataSet dataset; // 메모리 내의 데이터 캐시
string a;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click1(object sender, EventArgs e)
{
string str1 = "server=(local);database=주소록;uid=sa;pwd=romantic;"; // 주소록 DB 연결
conn = new SqlConnection(str1);
string str = "insert into tblstudent values(@num,@name,@id,@pass,@tel,@addr,@ban,@kor,@eng,@mat,@sci)";
// 별칭 생성(순서 중요)
cmdInsert = new SqlCommand(str, conn); // 주소록 DB에서 str 입력 예고
cmdInsert.Parameters.Add(new SqlParameter("@num", SqlDbType.Char, 3, "num")); // 자료형에 맞는 선언
cmdInsert.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar, 50, "name"));
cmdInsert.Parameters.Add(new SqlParameter("@id", SqlDbType.VarChar, 50, "id"));
cmdInsert.Parameters.Add(new SqlParameter("@pass", SqlDbType.VarChar, 50, "pass"));
cmdInsert.Parameters.Add(new SqlParameter("@tel", SqlDbType.VarChar, 50, "tel"));
cmdInsert.Parameters.Add(new SqlParameter("@addr", SqlDbType.VarChar, 50, "addr"));
cmdInsert.Parameters.Add(new SqlParameter("@ban", SqlDbType.Char, 1, "ban"));
cmdInsert.Parameters.Add(new SqlParameter("@kor", SqlDbType.Int, 4, "kor"));
cmdInsert.Parameters.Add(new SqlParameter("@eng", SqlDbType.Int, 4, "eng"));
cmdInsert.Parameters.Add(new SqlParameter("@mat", SqlDbType.Int, 4, "mat"));
cmdInsert.Parameters.Add(new SqlParameter("@sci", SqlDbType.Int, 4, "sci"));
cmdSelect = new SqlCommand("select * from tblstudent", conn); // tblstudent 테이블 선택
adapter = new SqlDataAdapter(); // SQL DB를 업데이트하는 데 사용할 데이터 명령 집합과 DB 연결
adapter.SelectCommand = cmdSelect; // 위의 cmdSelect와 연결
adapter.InsertCommand = cmdInsert; // 위의 cmdInsert와 연결
dataset = new DataSet(); // dataset이라고 하는 DataSet(메모리 안의 DB 캐시) 생성
adapter.Fill(dataset, "tblstudent"); // dataset을 tblstudent로 채운다
DataTable table = dataset.Tables["tblstudent"]; // table에 tblstudent 저장
DataRow[] row = table.Select("num = '" + TextBox1.Text.ToString() + "'"); // 테이블의 num 값이 textbox1과 일치하는 것을 선택
if (row.Length == 0) // 일치하는 자료가 없을 때(입력 가능)
{
DataRow row1 = table.NewRow();
row1["num"] = TextBox1.Text.ToString(); // 텍스트박스에 입력한 값 저장
row1["name"] = TextBox2.Text.ToString();
row1["id"] = TextBox3.Text.ToString();
row1["pass"] = TextBox1.Text.ToString();
row1["tel"] = TextBox4.Text.ToString();
row1["addr"] = TextBox5.Text.ToString();
row1["ban"] = TextBox6.Text.ToString();
row1["kor"] = TextBox7.Text.ToString();
row1["eng"] = TextBox8.Text.ToString();
row1["mat"] = TextBox9.Text.ToString();
row1["sci"] = TextBox10.Text.ToString();
table.Rows.Add(row1); // 추가
adapter.Update(dataset, "tblstudent"); // 실제 DB에 반영
Response.Write("<script>alert('새로운 레코드가 추가되었습니다.');</script>"); // 추가 여부를 경고창으로 표시
a = TextBox1.Text;
Response.Redirect("data.aspx?id="+a); // data.aspx로 이동, TextBox1의 이름을 전달
}
else // 이미 자료가 있으면 추가 불가
{
Response.Write("<script>alert('존재하는 레코드입니다.');</script>");
TextBox1.Text = "";
TextBox1.Focus();
}
}
}
public partial class delete : System.Web.UI.Page
{
SqlConnection conn; // SQL 데이터베이스 연결용
SqlCommand comddelete, comdselect; // SQL 서버에 대해 실행할 문장
SqlDataAdapter adapter; //DataSet을 채우고 DB를 업데이트 할 데이터 명령을 저장
DataSet dataset; // 메모리 내의 데이터 캐시
DataTable table;
DataRow[] row;
protected void Page_Load(object sender, EventArgs e)
{
string idd = Request.QueryString["id"]; // 이전 페이지에서 가져온 id정보
conn = new SqlConnection("server=(local);database=주소록;uid=sa;pwd=romantic;"); // 주소록 DB 연결
adapter = new SqlDataAdapter(); // SQL DB를 업데이트하는 데 사용할 데이터 명령 집합과 DB 연결
dataset = new DataSet(); // dataset이라고 하는 DataSet(메모리 안의 DB 캐시) 생성
comddelete = new SqlCommand("delete from tblstudent where num = @numm", conn); // tblstudent에서 num값이 일치하는 자료 제거
comddelete.Parameters.Add(new SqlParameter("@numm", SqlDbType.Char, 3, "num")); // 자료형과 일치하도록 지정
comdselect = new SqlCommand("select * from tblstudent where num = '" + idd + "'", conn); // tblstudent 테이블에서 num값과 idd 값이 일치하는 것 선택
adapter.SelectCommand = comdselect; // 위에 있는 comdselect와 연결
adapter.Fill(dataset, "tblstudent"); // // dataset을 tblstudent로 채운다
table = dataset.Tables["tblstudent"]; // table에 tblstudent 저장
row = table.Select("num = " + idd); // num이 idd값과 같은 것을 저장
row[0].Delete(); // 자료 삭제
adapter.DeleteCommand = comddelete; // 위에 있는 comddelete와 연결
adapter.Update(table); // 실제 DB에 반영
Response.Write("<script> alert('1개의 Row가 삭제되었습니다.'); </script>"); // 알림
Response.Redirect("select3.aspx"); // select3.aspx로 다시 이동
}
}
protected void Page_Load(object sender, EventArgs e)
{
idd = Request.QueryString["id"]; // 이전 페이지의 id 값 가져옴
conn = new SqlConnection("server=(local);database=주소록;uid=sa;pwd=romantic;"); // 주소록 DB 연결
comdselect = new SqlCommand("select * from tblstudent where num = '" + idd + "'", conn); // tblstudent 테이블에서 num값이 idd와 일치하는 것 선택
adapter = new SqlDataAdapter(); // SQL DB를 업데이트하는 데 사용할 데이터 명령 집합과 DB 연결
adapter.SelectCommand = comdselect; // 위에 있는 comdselect와 연결
dataset = new DataSet(); // dataset이라고 하는 DataSet(메모리 안의 DB 캐시) 생성
adapter.Fill(dataset, "tblstudent"); // dataset을 tblstudent로 채운다
table = dataset.Tables["tblstudent"]; // table에 tblstudent 저장
row = table.Select(); // 선택된 table을 row에 저장
Label1.Text = row[0]["num"].ToString(); // 라벨 초기화(우측 텍스트박스와 비교 위해)
Label2.Text = row[0]["name"].ToString();
Label3.Text = row[0]["id"].ToString();
Label4.Text = row[0]["tel"].ToString();
Label5.Text = row[0]["addr"].ToString();
Label6.Text = row[0]["ban"].ToString();
Label7.Text = row[0]["kor"].ToString();
Label8.Text = row[0]["eng"].ToString();
Label9.Text = row[0]["mat"].ToString();
Label10.Text = row[0]["sci"].ToString();
Label11.Text = row[0]["pass"].ToString();
}
protected void Button1_Click1(object sender, EventArgs e) // 수정
{
cmdupdate = new SqlCommand("update tblstudent set name=@namee, id=@idd, pass=@passs, tel=@tell, addr=@addrr, ban=@bann, kor=@korr, eng=@engg, mat=@matt, sci=@scii where num=@numm", conn); // tblstudent를 업데이트
adapter.UpdateCommand = cmdupdate; // cmdupdate와 연결
cmdupdate.Parameters.Add(new SqlParameter("@numm", SqlDbType.Char, 3, "num")); // 정확한 자료형 일치시키기
cmdupdate.Parameters.Add(new SqlParameter("@namee", SqlDbType.VarChar, 50, "name"));
cmdupdate.Parameters.Add(new SqlParameter("@idd", SqlDbType.VarChar, 50, "id"));
cmdupdate.Parameters.Add(new SqlParameter("@passs", SqlDbType.VarChar, 50, "pass"));
cmdupdate.Parameters.Add(new SqlParameter("@tell", SqlDbType.VarChar, 50, "tel"));
cmdupdate.Parameters.Add(new SqlParameter("@addrr", SqlDbType.VarChar, 50, "addr"));
cmdupdate.Parameters.Add(new SqlParameter("@bann", SqlDbType.Int, 1, "ban"));
cmdupdate.Parameters.Add(new SqlParameter("@korr", SqlDbType.Int, 4, "kor"));
cmdupdate.Parameters.Add(new SqlParameter("@engg", SqlDbType.Int, 4, "eng"));
cmdupdate.Parameters.Add(new SqlParameter("@matt", SqlDbType.Int, 4, "mat"));
cmdupdate.Parameters.Add(new SqlParameter("@scii", SqlDbType.Int, 4, "sci"));
row[0]["num"] = TextBox1.Text.ToString(); // row의 각 요소마다 해당되는 값 대입(TextBox)
row[0]["name"] = TextBox2.Text.ToString();
row[0]["id"] = TextBox3.Text.ToString();
row[0]["tel"] = TextBox4.Text.ToString();
row[0]["addr"] = TextBox5.Text.ToString();
row[0]["ban"] = TextBox6.Text.ToString();
row[0]["kor"] = TextBox7.Text.ToString();
row[0]["eng"] = TextBox8.Text.ToString();
row[0]["mat"] = TextBox9.Text.ToString();
row[0]["sci"] = TextBox10.Text.ToString();
row[0]["pass"] = TextBox11.Text.ToString();
adapter.Update(dataset, "tblstudent"); // 실제 DB에 반영
Response.Redirect("data.aspx?id=" + idd); // 수정 후 결과 보기 위해 data.aspx로 이동
}
}
반응형
