在下拉菜单中的值(已删除)(Value in dropdown menu (Removed))

2019-09-22 07:04发布

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

<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是不可再选择。 板会从列表中删除。 我希望你能给予一些线索,意见和建议,帮助我。 希望能早日得到你的回复。 谢谢。

Answer 1:

Save按钮被按下,标记板的板作为去除,通过设置flagfordelete柱为真,并改变装载板的查询,以排除标记板。



Answer 2:

这似乎有你的问题和其他之间的相似性问题 。 方法会有所不同,如果一个一个管理员会明智地管理预订其他你必须寻找相似的方法如下所述

方法,如果要调整

我建议你创建另一个临时表,在那里你可以保存CarIDCarCode连同sessionID 。当用户从下拉选择车上下来(你可以选择火灾事件中的项目)

在这种情况下保存carID及的SessionID在临时表

表结构

 CarTempTable
    CarID xxx
    SessionID varchar(x)
    Date   datetime

一旦你有CarID和会话ID在该表中,那么你可以查询你的其他用户的主表,就像查询

SELECT CarID, CarName FROM Cars WHERE CarID NOT IN (SELECT CarID FROM CarTempTable WHERE SessionID <> "'+ SessionIDofUSER+'";

在上面的方法,你必须确保你清除临时表条目在会话结束的特别会议。

这种方法应该为你工作

编辑:如果它是汽车租赁,然后这是好事,对你的表一个额外的列,其表示,如果车是可用的基础上,如果用户的书车上。 你可以用上面的临时表,因为我不知道你如何采取预订是通过支付或以其他方式使用



Answer 3:

当保存按钮被用户按下时,你将不得不再次检查数据库中板的可用性。 如果所选的板块已经从管理员删除,那么你可以显示正确的消息给最终用户,否则运行代码并保存记录。 我希望你明白我的意思。



Answer 4:

你不说你使用的是什么样的后台数据库中,所以我的意见将适用于SQL Server中。

a添加bit数据类型列名为“IsSelected”的CarTab表。 改变你的SQL SELECT到SELECT [Plate] FROM [CarTab] WHERE ([Model] = @Model) AND IsSelected=0 。 最初,“IsSelected”字段设置为0的所有记录。 当选择了一个板,更新IsSelected字段1使用用于记录的主键。 那么只有那些没有被选中的记录将填充您DropDownList

可以有这种解决方案的并发问题,如果用户拥有的数据输入屏幕加载和一个选择的板。 其他用户的屏幕将不是最新的。



Answer 5:

标记板由数与数据库中的标志作为除去。

保持一个位字段在数据库表中。 它当管理员选择了塔板数设定为1。

更新上SelectedIndexChanged事件。

<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子句检查,如果车牌号码已经租出去了。

SELECT [Plate] FROM [CarTab] WHERE Rented = 0 and ([Model] = @Model)


文章来源: Value in dropdown menu (Removed)