2013-07-09 2 views
0
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("App_Data\\people.mdb")); 
      string command = "SELECT * from Files where FileSubjectID=1"; //1 = newsLetters, 2 = Publications, 3 = Videos, 4 = Presentations, 5 = Brochures, 6 = Others 
      OleDbDataReader reader = null;  
      string fileType = string.Empty; 
      string fileIcon = string.Empty; 
      FileInfo file; 

      int count = 0; 

      try 
      { 
       using (conn) 
       { 
        using (OleDbCommand cmd = new OleDbCommand(command, conn)) 
        { 
         cmd.CommandType = CommandType.Text; 
         conn.Open(); 
         reader = cmd.ExecuteReader(); 

         Response.Write("bofore whil1e<br/>" + reader.HasRows + "<br/>"); 
         while (reader.Read()) 
         { 

          file = new FileInfo(reader["FileName"].ToString()); 
          fileIcon = setFileTypeIcon(file.Extension.ToLower()); 

          Response.Write(count++ + "<br/>"); 


          lblNewsLetters.InnerHtml += "<tr><td class='te_al_M'>" + 
           "<table><tr><td rowspan='2'><img src='images/icons/" + fileIcon + ".png' alt='" + fileIcon + "'/></td><td><span class='te_al_L lblFiles'>" + reader["FileName"].ToString() + "</span></td></td></tr><tr><td><input type='text' style='display:none' id='txtNewName_" + reader["FileID"].ToString() + "'/></td></tr></table></td>" + 


           "<td class='te_al_L' width='150'>" + getUserName(reader["UserID"].ToString()) + "</a></td>" + 
           "<td class='te_al_L' width='70'>" + Convert.ToDateTime(reader["FileUploadDate"].ToString()).ToShortDateString() + "</td>" + 
           "<td class='te_al_L' width='70'><a target='_blank' href='" + reader["FilePath"].ToString() + "''><img src='images/viewBtn.jpg' alt='View file' title='View file'/></a></td>" + 
           "<td class='te_al_L' width='70'><a target='_blank' href='" + reader["FilePath"].ToString() + "''><img src='images/downloadBtn.jpg' alt='Download file' title='Download file'/></a></td>"; 


          // only the uploader can change the file name 
          if (isCurrentUsercodeInFile(currentUsercode, reader["FileName"].ToString())) 
          { 
           lblNewsLetters.InnerHtml += "<td class='width_70'>" + 
            "<a id='rename_" + reader["FileID"].ToString() + "' href='javascript:renameFile(\"" + reader["FileID"].ToString() + "\");'><img src='images/renameBtn.jpg' alt='Rename file' title='Rename file'/></a>" + 
            "<a style='display:none;' id='save_" + reader["FileID"].ToString() + "' href='javascript:saveFile(\"" + reader["FilePath"].ToString() + "\" , \"" + reader["FileName"].ToString() + "\" , \"" + currentUsercode + "\" , \"" + reader["FileID"].ToString() + "\");'><img src='images/saveBtn.jpg' alt='Save file' title='Save file'/></a></td>"; 
          } 
          else 
          { 
           lblNewsLetters.InnerHtml += "<td class='width_70'>&nbsp;</td>"; 
          } 


          // only the uploader can delete the file 
          if (isCurrentUsercodeInFile(currentUsercode, reader["FileName"].ToString())) 
          { 
           lblNewsLetters.InnerHtml += "<td class='width_70'><a href='javascript:delFile(\"" + reader["FilePath"].ToString() + "\" , \"" + reader["FileName"].ToString() + "\" , \"" + currentUsercode + "\");'><img src='images/deleteBtn.jpg' alt='Delete file' title='Delete file'/></a></td></tr>"; 
          } 
          else 
          { 
           lblNewsLetters.InnerHtml += "<td class='width_70'>&nbsp;</td></tr>"; 
          } 
         } 
         Response.Write("b whil1e<br/>"); 
         conn.Close(); 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       //Response.Write(ex.Message); 
       conn.Close(); 
      } 

У меня есть код выше, игнорируйте все «Response.Write» и написание, которое они предназначены только для моего тестирования.Получение данных с доступа с

Моя проблема заключается в том, что код работает локально, но не через Интернет. «While (reader.Read())», не выполняющий работу в сети, я вижу сообщение, которое я до этого, но не сообщения в цикле while, а не сообщение в конце цикла while, тогда как локально я вижу все сообщения ,

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

+0

Вы можете проверить драйвер OLEDB? – Amit

+0

@AKA, что вы хотите проверить драйвер OLEDB? Как это сделать? –

+0

Попробуйте установить драйвер oledb. то он покажет, что эта машина havinf OLEDB или нет – Amit

ответ

2

Вы глотание исключения:

catch (Exception ex) 
{ 
    //Response.Write(ex.Message); 
    conn.Close(); 
} 

Причины вы не видите что-либо после while петель начинается, вероятно, исключение, которое выбрасывает, а затем проглотил в фрагменте выше. Я бы зарегистрировал исключение и проанализировал это. Вероятно, что-то похожее на то, что вы не можете найти файл, указанный в базе данных:

file = new FileInfo(reader["FileName"].ToString());` 

Поэтому поэтому бросает и терпит неудачу. NEVER ласточки исключения! По крайней мере, войдите в файл, чтобы узнать, что происходит.

+0

Спасибо, это было глупо от меня. я получил эту ошибку: "Запрос на разрешение типа 'System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b77a5c561934e089' не удалось." сайта хранится в GoDaddy, если это означает что-либо –

+0

Это обычно означает, что ваше приложение не имеет достаточного разрешения. Go Daddy, вероятно, ограничивается и выполняется на основе хостинга отдельно. Однако вы можете попробовать добавить это в 'web.config' в' System.web': '', который должен поднять ваше приложение до полного доверия. – Belogix

+0

Вам удалось решить вашу проблему с Go Daddy? Если это помогло, пожалуйста, отметьте как ответ, чтобы помочь другим людям с аналогичными проблемами. Спасибо. – Belogix

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