2011-09-05 7 views
0

나는 다운로드 버튼을 누르면 SQL Server 테이블의 내용이 CSV 파일로 다운로드되는 다운로드 기능을 포함해야하는 프로젝트가 있습니다.SQL Server 테이블의 내용을 다운로드하고 내용을 CSV 파일에 저장 하시겠습니까?

내가 할 수있는 방법이 있습니까?

Characters이라는 표의 내용이 csv 파일로 다운로드됩니다. 내가 아는 것은 내가 쿼리 Select* from Characters을 사용하고 있지만 그것을 구현하는 방법을 모른다.

 protected void btnDownload_Click(object sender, EventArgs e) 
    { 

     string fileName = string.Empty; 
     string filepath = Request.MapPath("~/Uploads");// this needs to be changed with the SQL query, but I do not know how to implement it 
     string downloadFileName = "Attendance.zip"; 
     Response.ContentType = "application/zip"; 
     Response.AddHeader("content-disposition", "filename=" + downloadFileName); 

     using (ZipFile zip = new ZipFile()) 
     { 
      foreach (GridView row in gvFiles.Rows) 
      { 
       CheckBox cb = (CheckBox)row.FindControl("chkSelect"); 
       if (cb != null && cb.Checked) 
       { 
        fileName = (row.FindControl("lblFileName") as Label).Text; 
        zip.AddFile(Server.MapPath(Path.Combine(filepath, fileName)), ""); 
       } 
      } 
      zip.Save(Response.OutputStream); 
     } 

답변

0

난 당신이 게시 코드가 문제가 관련이 있는지 모르겠지만, 여기 당신이 테이블의 내용을 가지고 CSV 파일로를 설정하는 방법은 다음과 같습니다.

StringBuilder sb = new StringBuilder(); 

for (int i = 0; i < dtTable.Columns.Count; i++) 
{ 
    sb.Append(dtTable.Columns[i].ColumnName); 
    sb.Append(","); 
} 

// Remove the trailing , 
sb.Remove(sb.Length - 1, 1); 
sb.Append(Environment.NewLine); 

for (int i = 0; i < dtTable.Rows.Count; i++) 
{ 
    for (int j = 0; i < dtTable.Columns.Count; j++) 
    { 
     sb.Append(dtTable.Rows[i][j].ToString()); 
     sb.Append(","); 
    } 

    sb.Remove(sb.Length - 1, 1); 
    sb.Append(Environment.NewLine); 
} 

string csvFileString = sb.ToString(); 
0

자원 사용의 성능과 경제성을 위해, 나는 SQL 명령 및 앞으로 만 데이터를 얻을 SqlDataReader 개체를 사용합니다 : 샘플은 이미 채워진 DataTable에 (dtTable)가 가정합니다.

이 기사는 당신이 필요 무엇을 이해하는 데 도움이 있습니다 : 당신은 당신의 환경에 대한 많은 이야기 havn't는

http://www.developerfusion.com/article/4278/using-adonet-with-sql-server/2/

http://wiki.asp.net/page.aspx/401/export-to-csv-file/

0

. 예 :

  • 어떤 데이터 액세스 기술을 사용합니까?
  • CSV 파일의 입력란을 이스케이프 처리해야합니까?

csv 파일을 처리 할 때는 filehelpers library을 사용하는 것이 좋습니다.

데이터 액세스를 자유롭게 선택할 수 있다면 LINQ2SQL 또는 ADO EF을 보거나 일반 SqlCommand/SqlDataReader를 사용해야 할 수도 있습니다.

+0

SQL Server 2008을 사용하고 있습니다. – Mark20

관련 문제