shakeJ 상업적 용도 금지
출처: mnworld.co.kr
GridView에 있는 내용을 보안 상의 이유로 백업이 필요한 경우가 있다.
Gridview는 테이블, 표로 되어있기에, 엑셀로 백업하고, csv파일(엑셀파일 중 하나)로 SQL에 데이터 복원도 가능하다.
본인도, 이 기능을 추가하기 위해 인터넷을 뒤졌는데, 대부분이 외국 사이트였다.
(외국이 확실히 발전되어있구나…하는 생각과 함께, 영어를 잘해야 겠다는 생각도…)
때문에 외국 소스 사용 시 한글이 자주 깨진다고 하는데 본인은 이 소스를 사용했을 때 전혀 깨짐도 없이 저장되는
것을 볼 수 있었다. 아 ! 경고창은 가볍게 무시하도록 하자.
어떤 페이지.aspx.cs <~ cs파일에 넣도록 하자.
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindData(); } }
private void BindData() { string query = "SELECT 본인이 추가하고싶은 열 FROM 추가하고자 하는 테이블 명"; SqlConnection myConnection = new SqlConnection(ConnectionString); SqlDataAdapter ad = new SqlDataAdapter(query, myConnection); DataSet ds = new DataSet(); ad.Fill(ds, "테이블 명"); GridView1.DataSource = ds; GridView1.DataBind();
} private string ConnectionString { get { return @"Server=서버이름\SQLEXPRESS;Database=불러오고자 하는 테이블이 있는 데이터 베이스;Trusted_Connection=true"; } }
protected void BtnExport_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=기본으로 저장되는 이름.xls"); Response.Charset = "";
// application/vnd.xls";이 엑셀 97파일로 저장하겠다는 뜻이라고 한다. Response.ContentType = "application/vnd.xls"; Response.CacheControl = "public"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); GridView1.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } |
BtnExport라는 버튼을 만들어주고, OnClick에는 BtnExport_Click을 적어주자.
유용하게 사용하시길!
'프로그래밍언어 > ASP.NET' 카테고리의 다른 글
asp.net 페이지 로그인 상태인데 뒤로 페이지가 넘어갈 때 (0) | 2010.12.31 |
---|---|
SQL 에서 값 부를 때 소수점(IP주소 같은) 정렬하기 쿼리문 (0) | 2010.12.31 |
ASP.NET 로그아웃 하고 뒤로가기 눌렀을 때 그냥 넘어가는 경우 (0) | 2010.12.31 |
Get 과 Set 메서드의 차이점 (0) | 2010.12.31 |
asp.net 페이지 및 응용 프로그램의 구조 (0) | 2010.12.31 |