2011-08-29 4 views
1

사용자가 csv 파일을 업로드 할 수 있도록이 코드가 있으며 그 내용이 GridView에 표시됩니다. 문제는 행/열이 비어 있으면 오류 메시지를 표시해야합니다. 이? 나는 asp.net C#을 사용하는 것이 확실하지 않다. 내 코드 :GridView에서 빈 열이나 행을 확인하고 표시하는 방법은 무엇입니까?

protected void btnUpload_Click(object sender, EventArgs e) 
    { 
     string strFileNameOnServer = fileUpload.PostedFile.FileName; 
     string fileExt = 
     System.IO.Path.GetExtension(fileUpload.FileName); 

     if (fileUpload.PostedFile != null && fileExt == ".csv") 
     { 

      try 
      { 

       //fileUpload.PostedFile.SaveAs(ConfigurationManager.AppSettings + appDataPath + "\\" + strFileNameOnServer); 
       fileUpload.PostedFile.SaveAs(Server.MapPath("~/Uploaded")); 
       //string appPath = HttpContext.Current.Request.ApplicationPath; 
       // string physicalPath = HttpContext.Current.Request.MapPath("~/MajorProject"); 
       Label1.Text = "File name: " + 
         fileUpload.PostedFile.FileName + "<br>" + 
         fileUpload.PostedFile.ContentLength + " kb<br>" + 
         "Content type: " + 
         fileUpload.PostedFile.ContentType; 
      } 
      catch (Exception ex) 
      { 
       Label1.Text = "Error saving <b>" + strFileNameOnServer + "</b><br>. " + ex.Message; 
      } 
      BtnImport1.Visible = true; 
      Cancel.Visible = true; 
      fileUpload.Visible = false; 
      btnUpload.Visible = false; 
     } 
     else 
     { 

      Label1.Text = "Error - a file name must be specified/only csv files are allowed"; 
      return; 

     } 


     var data = File.ReadAllLines(Server.MapPath("~/Uploaded")) 
      .Select(line => line.Split(','))  
      .Select(columns => new {GuestName = columns[0], Guest_ID = columns[1], IC_Number = columns[2]}); 
     myGridView.DataSource = data; 
     myGridView.DataBind(); 











    } 

도와주세요!

답변

1

는 메소드 호출 값 또는 오류 메시지를 생성하고 그

.Select(columns => new {GuestName = ValueOrErrorMessage(columns[0]), Guest_ID = ValueOrErrorMessage(columns[1]), IC_Number = ValueOrErrorMessage(columns[2])}); 
     ... 

private string ValueOrErrorMessage(string input){ 
    if(!string.IsNullOrEmpty(input)) 
     return input; 
    } 
    return "no value" 
} 
+0

덕분 열 [인덱스]를 통과! 하지만 어디에 개인 문자열 ValuOrErrorMessage 메서드를 넣어야합니까? 죄송합니다 – Mark20

+0

그냥 btnUpload_Click 메서드를 아래에 넣어 – kmcc049

+0

,하지만 지금은 GuestName = ErrorMessage (columns [0])에서 오류를 표시했습니다, 오류가 []와 함께 색인을 적용 할 수 없습니다,이 오류는 무엇입니까? – Mark20

관련 문제