调用第一个文档无关紧要,使用此代码始终从列表中排除。我可以对数据库运行相同的select语句,并显示正确的结果。我想我只是看了太多的代码来看问题。
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();
答案 0 :(得分:3)
我认为这是因为你两次致电dr.Read();
。只需删除第一个。
答案 1 :(得分:0)
您正在阅读一次,但没有保存您所阅读的内容,然后您在循环开始时再次阅读。
删除您的第一条dr.Read()
行。你只想在循环中阅读。
答案 2 :(得分:0)
dr.Read();
html += "<ul>";
while (dr.Read())
你的第一个dr.Read()跳过了第一条记录。
答案 3 :(得分:0)
摆脱while循环之外的第一个dr.Read()。它正在跳过第一张唱片。