ASP.NET 웹서비스 만들기 #4 (WebForm)

ASP.NET 웹서비스 만들기 #4

data_service.aspx 페이지 추가
POST 로 TABLE_NAME 을 넘겨서 테이블 정보를 JSON 으로 넘겨주는 페이지

protected void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.Session["Userid"] == null)
{
// 세션 정보 없음
Response.Write("NG : 사용자 정보 없음");
Response.End();
}

if (HttpContext.Current.Session["Userid"].ToString() == "")
{
// 사용자 아이디 값 NULL
Response.Write("NG : 사용자 정보 없음");
Response.End();
}

String TABLE_NAME = "";

if (!String.IsNullOrEmpty(Request.Form["TABLE_NAME"]))
{
TABLE_NAME = Request.Form["TABLE_NAME"].ToString();
}

String db_conn = _appSettings["DBConn"].ToString();
String Query = "SELECT * FROM " + TABLE_NAME;

SqlConnection mDBConn = new SqlConnection(db_conn);
mDBConn.Open(); // DB 접속

DataTable mDT = new DataTable();

SqlCommand mCmd = new SqlCommand(Query, mDBConn); // Query 실행

SqlDataAdapter mDA = new SqlDataAdapter(mCmd); // DataTable 채우기
mDA.Fill(mDT);

mDBConn.Close();
mDA.Dispose();

if (mDT.Rows.Count == 0)
{
Response.Write("NG : 테이블에 데이터가 없습니다.");
}
else
{
// DATA Table json 으로 변환
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in mDT.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in mDT.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}

Response.Write(serializer.Serialize(rows));
}
}

위 소스는 Table 명을 파라미터로 받아서 간단히 Select 하고
그 DataTable 을 JSON 으로 Write 합니다.


댓글

이 블로그의 인기 게시물

2025년 7월 다이어리

1. 대학교 축제 전시 프로젝트