直接输出ds.Tables.Item(0).Rows.Count,看这个值是多少?
是不是缓寸在捣乱?

解决方案 »

  1.   

    "滑雪衫是"重復的。T-SQL中有如下規定:
      TOP詞句中如果使用了Order by子句,則當出現兩個或多個和最后一條記錄的值相等時,這些記錄也將出現在結果集中,此時你的結果集可能包含任意數目,而不只是前N個記錄。
      

  2.   

    因为几条数据的adddate值是相同的,它把相同adddate的记录当成了一条,所以如果要严格限制记录条数,还应该用一个循环或者用SQL Server的Set Rowcount函数
      

  3.   

    ok了,是因为'DataList1控件的对数据源的问题,换了另外一种方法就OK了
      

  4.   

    webdiyer(陕北吴旗娃) 我同意你的看法,因为access的的adddate的时间是相同的(我刚刚也在测试过,是因为这个问题),现在换成另外一种绑定方法就解决了。呵呵    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If Not IsPostBack Then
                sqlconn = New OleDbConnection(Getconnstring())
                sqlcomm = New OleDbCommand("select * from productdemo order by adddate desc", sqlconn)
                Dim mytable As DataTable
                Dim ds As DataSet = New DataSet
                Dim sql As OleDbDataAdapter = New OleDbDataAdapter
                sql.SelectCommand = sqlcomm
                sql.Fill(ds, 0, 8, "productdemo")
                DataList1.DataSource = ds.Tables.Item(0).DefaultView
                'sqlconn.Open()
                'DataList1.DataSource = sqlcomm.ExecuteReader(CommandBehavior.CloseConnection)
                DataList1.DataBind()
            End If
        End Sub