疯掉了!哪位帮忙看看呀,太奇怪了,先谢了! (10分)

  • 主题发起人 主题发起人 delphibbs_wayne
  • 开始时间 开始时间
D

delphibbs_wayne

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用DataGrid显示数据库中最后加入的五条记录呀?我想在首页显示五条最后更新的数据内容(包括标题和时间两个字段)。
我是这样做的:
1、利用查询找到五条记录。
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("db//data.mdb");
string strSQL = "SELECT top 5 * FROM dadt order by date desc";

OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbDataAdapter objAdapter = new OleDbDataAdapter(strSQL,objConnection);
DataSet objDataSet = new DataSet();

objAdapter.Fill(objDataSet,"dadt");
dadtDataGrid.DataSource = objDataSet.Tables["dadt"].DefaultView;
dadtDataGrid.DataBind();

我的那句string strSQL = "SELECT top 5 * FROM dadt order by date desc";应该没有问题吧。
2、利用DataGrid控件显示,代码如下:
<asp:DataGrid id="dadtDataGrid" runat="server"
Width="330"
GridLines="None"
ShowFooter="false"
CellPadding="2"
CellSpacing="1"
EnableViewState="false"
     AutoGenerateColumns="false"
>
<Columns>
      <asp:TemplateColumn>
<ItemTemplate>
<img src="images/dot1.gif">
<asp:HyperLink Text='<%# FormatString(DataBinder.Eval(Container.DataItem,"title").ToString())%>' NavigateUrl='<%# "javascript:newwin(/"view_dadt.aspx?id="+DataBinder.Eval(Container.DataItem,"id").ToString()+"/");" %>' runat="server"/>
[<%# DataBinder.Eval(Container.DataItem,"date","{0:d}")%>]
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
这个就更应该没有问题了呀,现在问题如下,如果我这样做,会不知道为什么显示十条记录,如果我把我的string strSQL = "SELECT top 5 * FROM dadt order by date desc";改成string strSQL = "SELECT top 5 * FROM";就能正常显示五条记录了,可是就不能实现以时间排序了!!!
疯了,我觉得这样不可能有问题呀,为什么为什么会这样~~~~~哇哇~~~啊!!!
 
老兄啊,你为什么不用ADO方式去试试呢, 微软都在全面推行ADO技术。JET技术在VB里倒是
相当流行。我觉得你的SQL语句不存在什么问题啊,如果硬要问我可能会出错的地方的话,我
觉得问题可能在你的记录集本身上了,我的意思是记录中有时间相同的记录条。不过话又说回来
来,怎么刚好是十条呢?这个我也不大清楚了,会不会是刷新的问题啊。以上一些废话仅供参考
 
后退
顶部