首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下拉菜单中的值(已删除)

下拉菜单中的值(已删除)
EN

Stack Overflow用户
提问于 2012-09-11 12:42:52
回答 5查看 335关注 0票数 2

我有一个从数据库中检索值下拉菜单,

代码语言:javascript
复制
<asp:DropDownList ID="DropDownList4" runat="server" 
   DataSourceID="SqlDataSource2" DataTextField="Plate" DataValueField="Plate" 
   Height="45px" Width="141px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
   ConnectionString="<%$ ConnectionStrings:Connection %>" 
   SelectCommand="SELECT [Plate] FROM [CarTab] WHERE ([Model] = @Model)">
      <SelectParameters>
          <asp:ControlParameter ControlID="DropDownList4" Name="Model" 
              PropertyName="SelectedValue" Type="String" />
      </SelectParameters>
</asp:SqlDataSource>

这将从数据库中检索车牌号码。作为管理员,管理员将选择任何车牌号码给用户出租。这里的问题是,如何删除车牌号码后,给用户?例如,选择了板材A,管理员点击保存按钮后,板材A不能再被选择。车牌A将从名单中删除。我希望你能通过提供一些线索,想法和建议来帮助我。期待着尽快收到您的回音。谢谢。

EN

回答 5

Stack Overflow用户

发布于 2012-09-11 12:45:39

通过数据库中的标志将车牌号码标记为已删除。

在数据库表中保留一个位字段。当管理员选择车牌号码时,将其设置为1。

SelectedIndexChanged事件上更新它。

代码语言:javascript
复制
<asp:DropDownList ID="DropDownList4" runat="server" 
   DataSourceID="SqlDataSource2" DataTextField="Plate" DataValueField="Plate" 
   Height="45px" Width="141px" OnSelectedIndexChanged="DropDownList4_SelectedIndexChanged" >
</asp:DropDownList>

protected void DropDownList4_SelectedIndexChanged"(object sender, EventArgs e)
{
    var connectionString = "your connection string from some configuration";
    var updateCmd = "UPDATE [CarTab] SET Rented = 1 WHERE ([Model] = @Model)";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(updateCmd , connection);
        command.AddWithValue("@Model", DropDownList4.SelectedValue);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}

在您的SelectCommand中,使用where子句检查车牌号码是否已经出租。

代码语言:javascript
复制
SELECT [Plate] FROM [CarTab] WHERE Rented = 0 and ([Model] = @Model)
票数 1
EN

Stack Overflow用户

发布于 2012-09-11 12:50:42

当按下Save按钮时,通过将flagfordelete列设置为true,将板材标记为已移除,并更改装载板材的查询,以排除标记的板材。

票数 1
EN

Stack Overflow用户

发布于 2012-09-11 12:55:06

这似乎在你的问题和其他question之间有相似之处。方法将有所不同,如果一个管理员将管理预订,否则您必须寻找类似的方法如下所述

如果你想适应

我建议你创建另一个临时表,当用户从下拉菜单中选择一辆汽车时,你可以在其中保存CarIDCarCode以及sessionID (你可以在选择项目时触发事件)

在此事件中,将carID和SessionID保存在临时表中

表结构

代码语言:javascript
复制
 CarTempTable
    CarID xxx
    SessionID varchar(x)
    Date   datetime

一旦在这个表中有了CarID & SessionID,您就可以用如下查询查询主表中的其他用户

代码语言:javascript
复制
SELECT CarID, CarName FROM Cars WHERE CarID NOT IN (SELECT CarID FROM CarTempTable WHERE SessionID <> "'+ SessionIDofUSER+'";

在上述方法中,您必须确保在会话结束时清除特定会话的临时表条目。

这种方法应该适用于您。

编辑:如果它是租车,那么在你的表格中有一个额外的列是很好的,它可以根据用户是否预订汽车来说明汽车是否可用。您可以在上面的临时表中使用它,因为我不确定您如何接受预订,是通过付款还是其他方式

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12362882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档