【问题标题】:How to get 10 last rows inserted in gridview如何在gridview中插入最后10行
【发布时间】:2014-03-24 16:08:20
【问题描述】:

我只想将 最后 10 行 从 sql server 插入到我的 gridview 中,并在我的页面中显示它们。 这是我的查询:

SELECT Cause.Cause_name
       ,City.City_name
       ,InjuryScenario.InjuryScenario_id
       ,InjuryScenario.InjuryScenario_name
       ,InjuryScenario.InjuryDay
       ,InjuryScenario.InjuryMonth
       ,InjuryScenario.InjuryYear
       ,Place.Place_name
    FROM InjuryScenario
    INNER JOIN Cause
        ON InjuryScenario.Cause_id = Cause.Cause_id
    INNER JOIN PlaceDet
        ON InjuryScenario.InjuryScenario_id = PlaceDet.InjuryScenario_id
    INNER JOIN City
        ON PlaceDet.City_id = City.City_id
    INNER JOIN Place
        ON InjuryScenario.Place_id = Place.Place_id)

这是我在 aspx 中的代码:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="InjuryScenario_id" DataSourceID="SqlDataSource30" ShowHeaderWhenEmpty="True">
     <Columns>
         <asp:BoundField DataField="InjuryScenario_id" HeaderText="InjuryScenario_id" ReadOnly="True" SortExpression="InjuryScenario_id"  />
         <asp:BoundField DataField="InjuryScenario_name" HeaderText="InjuryScenario_name" SortExpression="InjuryScenario_name" />
         <asp:BoundField DataField="Cause_name" HeaderText="Cause_name" SortExpression="Cause_name" />
         <asp:BoundField DataField="City_name" HeaderText="City_name" SortExpression="City_name" />
         <asp:BoundField DataField="Place_name" HeaderText="Place_name" SortExpression="Place_name" />
         <asp:BoundField DataField="InjuryDay" HeaderText="InjuryDay" SortExpression="InjuryDay" Visible="False"/>
         <asp:BoundField DataField="InjuryMonth" HeaderText="InjuryMonth" SortExpression="InjuryMonth" Visible="False"/>
         <asp:BoundField DataField="InjuryYear" HeaderText="InjuryYear" SortExpression="InjuryYear" Visible="False"/>
         <asp:TemplateField HeaderText="Date">
                      <ItemTemplate>
         <asp:Label runat="server"><%#(int)Eval("InjuryDay")+"/"+ Eval("InjuryMonth")+"/"+ Eval("InjuryYear") %></asp:Label>

     </ItemTemplate>

     </asp:TemplateField>

     </Columns>
    </asp:GridView>

这里是插入代码:

DBManager db = new DBManager();
db.Insert("InjuryScenario", "InjuryScenario_id,"+"Cause_id," + "CauseType_id," + 
"CauseChar_id," + "Place_id," + "PlaceType_id," + "InjuryYear," + "InjuryMonth," + 
"InjuryDay," + "InjuryDate_id," + "InjuryInSchool," + "InjuryDesc," + "AlmostInjury," 
+ "InjuryComments," + "ProductInjury","'"+ num_id + "'" + Cause_nameDD.SelectedValue + 
"','" + CauseTypeDD.DataValueField + "','" + CauseCharDD.SelectedValue + "','" + 
PlaceDD.SelectedValue + "','" + PlaceTypeDD.SelectedValue + "','" + 
YearDD.SelectedValue + "','" + MonthDD.SelectedValue + "','" + DayDD.SelectedValue + 
"','" + InjuryDateDD.SelectedValue + "','" + InjuryInSchoolCBL.SelectedValue + "','" + 
InjuryDescTB.Text + "','" + AlmostInjuryTB.Text + "','" + InjuryCommentTB.Text + "','" 
+ ProductInjuryCBL.Text + "'");

【问题讨论】:

  • 按什么顺序?你想只得到 10 个随机行吗?
  • 按最后插入字段日期的顺序
  • 我编辑了我的问题,插入代码就在里面
  • 您需要查看参数化 SQL 语句以保护自己免受 SQL 注入。 Look Here
  • 好的,我会看的.. 但你知道为什么 ir 只显示一行而不是我的所有行吗?以为是sql注入的原因?

标签: c# asp.net sql gridview


【解决方案1】:

我们需要查看插入语句并了解您如何唯一标识每个案例以提供帮助。 我通常会做这样的事情,每个新案例都有一个唯一的 ID 作为自动增量。此 ID 用于确保所有表的参照完整性。

然后,要退出最后十个案例,我只需创建一个类似的语句

选择... 从... 其中 ID IN ( 从 CASE_IDS 中选择 CASE_IDS.ID ORDER BY CASE_IDS.ID DESC WHERE ROWNUM

希望这会有所帮助。

【讨论】:

  • 我是 C# 和 sql 的新手。你能告诉我把这个查询放在哪里吗?在网格视图中? Select ... From... Where ID IN ( select CASE_IDS.ID from CASE_IDS ORDER BY CASE_IDS.ID DESC WHERE ROWNUM
  • 有人吗?请帮帮我!
  • 正如我在回答中所说,如果不了解您的数据模型,我们将无法为您提供帮助。对于存储在这样的表中的每个 cae,您是否有一个唯一的 ID,以便我的方法可以工作?
猜你喜欢
  • 2020-02-29
  • 1970-01-01
  • 2020-01-03
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 2016-09-09
相关资源
最近更新 更多