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.10.28 |
---|---|
오버라이드,오버라이딩 & 오버로드 (2) | 2010.10.28 |
ASP.NET 로그인 상태인데도 ‘뒤로 가기 버튼시’뒤로 넘어가질 때 해결방법 (0) | 2010.10.28 |
ASP.NET/SQL 소수점(IP주소와 같은) 정렬하기 쿼리문 (0) | 2010.10.28 |
ASP.NET 로그아웃 하고 뒤로가기 버튼눌렀을 때 그냥 넘어가는 경우 (1) | 2010.10.28 |