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 합니다.
댓글
댓글 쓰기