2012-08-29 67 views
1

第一个文档被调用并不重要,它总是从该列表中排除。我可以对数据库运行相同的select语句并显示正确的结果。我认为我刚刚查看了代码太多以查看问题。从结果中删除第一个SQL结果

SqlConnection objConn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBName"].ToString()); 

      objConn.Open(); 

      string sTSQL = 
         "SELECT [filename]  " + 
         "FROM [DB].[dbo].[secure_files] "; 

      SqlCommand objCmd = new SqlCommand(sTSQL, objConn); 
      objCmd.CommandType = CommandType.Text; 

      SqlDataReader dr = objCmd.ExecuteReader(); 
      dr.Read(); 

      html += "<ul>"; 

      while (dr.Read()) 
      { 
       html += "<li><a href=\"/secure/secureDownload.aspx?query=" + dr[0].ToString() + "\">" + dr[0].ToString() + "</a></li>"; 
      } 
      html += "</ul>"; 

      objConn.Close(); 

回答

3

我认为这是因为您拨打dr.Read();两次。只要删除第一个。

+0

谢谢......就像我说过的,看着它太多次了。 – Geekender

+0

是的。有时会发生。 :) –

0

你正在阅读一次,但没有保存你读的内容,然后在循环开始时再次阅读。

删除您的第一个dr.Read()行。你只是想在循环中阅读。

0
dr.Read(); 

html += "<ul>"; 

while (dr.Read()) 

您的第一个dr.Read()会跳过第一条记录。

0

摆脱while循环之外的第一个dr.Read()。它正在跳过第一个记录。