2009-12-03 2 views
0

Я продолжаю получать следующую ошибку, и я не знаю, как ее исправить. Любая помощь была бы замечательной.Ссылка на объект не установлена ​​в экземпляр объекта

Сведения об исключении: исключение NullReferenceException не было обработано кодом пользователя: Ссылка на объект не установлена ​​в экземпляр объекта.

protected void LbUpload_Click(object sender, EventArgs e) 
    {  
     ERROR: if(FileUpload.PostedFile.FileName == string.Empty) 
     { 

      LabelMsg.Visible = true; 
      return; 
     } 
     else 
    { 
     string[] FileExt = FileUpload.FileName.Split('.'); 
     string FileEx = FileExt[FileExt.Length - 1]; 
     if (FileEx.ToLower() == "csv") 
     { 
      FileUpload.SaveAs(Server.MapPath("CSVLoad//" + FileUpload.FileName)); 
     } 
     else 
     { 
      LabelMsg.Visible = true; 
      return; 
     } 
    } 
    CSVReader reader = new CSVReader(FileUpload.PostedFile.InputStream); 
    string[] headers = reader.GetCSVLine(); 
    DataTable dt = new DataTable(); 
    foreach (string strHeader in headers) 
    dt.Columns.Add(strHeader); 
    string[] data; 
    while ((data = reader.GetCSVLine()) != null) 
    dt.Rows.Add(data); 
    GridView1.DataSource = dt; 
    GridView1.DataBind(); 
    if (FileUpload.HasFile) 
     try 
     { 
      FileUpload.SaveAs(Server.MapPath("confirm//") + 
      FileUpload.FileName); 
      LabelGrid.Text = "File name: " + 
      FileUpload.PostedFile.FileName + "<br>" + 
      FileUpload.PostedFile.ContentLength + " kb<br>" + 
      "Content type: " + 
      FileUpload.PostedFile.ContentType + "<br><b>Uploaded Successfully"; 
     } 
     catch (Exception ex) 
     { 
      LabelGrid.Text = "ERROR: " + ex.Message.ToString(); 

     } 
    else 
    { 
     LabelGrid.Text = "You have not specified a file."; 
    } 
    File.Delete(Server.MapPath("confirm//" + FileUpload.FileName)); 
} 

ответ

0

Вы уверены, что FileUpload и FileUpload.PostedFile не являются нулевыми?

0

Либо FileUpload, либо его имущество PostedFile должно быть пустым.

1

Вы проверяете, является ли FileNamestring.Empty, похоже, что вы хотите обнаружить, когда пользователь нажал кнопку без выбора файла.

Если это произойдет, то фактическое PostedFile имущество будет null (помните, что пользователь не разместил файл), вы должны использовать FileUpload.HasFile свойство для этой цели:

protected void LbUpload_Click(object sender, EventArgs e) 
{  
    if(FileUpload.HasFile) 
    { 

     LabelMsg.Visible = true; 
     return; 
    } 
    // ... 
} 

Но я бы порекомендовал вам также добавить RequiredFieldValidator.

Подробнее о проверке:

+0

эта проблема возникает, когда я поставил код на сессии. – renisha

+0

Можете ли вы показать нам, что и когда вы проводите сессию? – CMS

Смежные вопросы