2016-04-30 1 views
0

私はCSVファイルをASP.netとC#を使用してDataGridにアップロードしていましたが、DataGridの代わりにテーブルを使用しようとしました。だから私はテーブルにデータを表示するために自分のコードに変更しなければならないものを ここ2つの、私はDataGridではなくテーブルにcsvファイルをアップロード

DataGrid.DataSource = GetDataTableFromCSVFile(currentPath); 
DataGrid.DataBind(); 

をデータグリッドを使用するコードの行とすべてのコード

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.IO; 
using Microsoft.VisualBasic.FileIO; 

namespace Csvfile 
{ 
public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void btCSVUpload_Click(object sender, EventArgs e) 
    { 
     if (FileUploadControl.HasFile) 
     { 
      try 
      { 
       string currentPath = Server.MapPath("~/") + 
           Path.GetFileName(FileUploadControl.FileName); 
       FileUploadControl.SaveAs(currentPath); 

       DataGrid.DataSource = GetDataTableFromCSVFile(currentPath); 
       DataGrid.DataBind(); 
       lbStatus.Text = "CSV Upload status: File uploaded!"; 

       File.Delete(currentPath); 
      } 
      catch (Exception ex) 
      { 
       lbStatus.Text = @"CSV Upload status: The file could not be uploaded. 
       The following error has occured: " + ex.Message; 
      } 
     } 
     else 
     { 
      lbStatus.Text = "CSV Upload status: File not found."; 
     } 
    } 

    private static DataTable GetDataTableFromCSVFile(string csvfilePath) 
    { 
     DataTable csvData = new DataTable(); 
     using (TextFieldParser csvReader = new TextFieldParser(csvfilePath)) 
     { 
      csvReader.SetDelimiters(new string[] { "," }); 
      csvReader.HasFieldsEnclosedInQuotes = true; 

      //Read columns from CSV file, remove this line if columns not exits 
      string[] colFields = csvReader.ReadFields(); 

      foreach (string column in colFields) 
      { 
       DataColumn datecolumn = new DataColumn(column); 
       datecolumn.AllowDBNull = true; 
       csvData.Columns.Add(datecolumn); 
      } 

      while (!csvReader.EndOfData) 
      { 
       string[] fieldData = csvReader.ReadFields(); 
       //Making empty value as null 
       for (int i = 0; i < fieldData.Length; i++) 
       { 
        if (fieldData[i] == "") 
        { 
         fieldData[i] = null; 
        } 
       } 
       csvData.Rows.Add(fieldData); 
      } 
     } 
     return csvData; 
    } 
} 

}

+2

問題が何ですか。あなたは誰もあなたを助けることができると言いませんか? –

+0

この記事では、問題の解決策を見つけることができます:http://stackoverflow.com/questions/19682996/datatable-to-html-table。 – ConnorsFan

答えて

0
を学位論文

ASP.NETは、レスポンスを作成するときにDataGridをHTMLテーブルに変換します。ブラウザーからソースを表示すると、グリッドがHTMLテーブルとしてレンダリングされていることがわかります。

関連する問題