我有一个从数据库中检索值下拉菜单,
<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将从名单中删除。我希望你能通过提供一些线索,想法和建议来帮助我。期待着尽快收到您的回音。谢谢。
发布于 2012-09-11 12:45:39
通过数据库中的标志将车牌号码标记为已删除。
在数据库表中保留一个位字段。当管理员选择车牌号码时,将其设置为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)发布于 2012-09-11 12:50:42
当按下Save按钮时,通过将flagfordelete列设置为true,将板材标记为已移除,并更改装载板材的查询,以排除标记的板材。
发布于 2012-09-11 12:55:06
这似乎在你的问题和其他question之间有相似之处。方法将有所不同,如果一个管理员将管理预订,否则您必须寻找类似的方法如下所述
如果你想适应
我建议你创建另一个临时表,当用户从下拉菜单中选择一辆汽车时,你可以在其中保存CarID或CarCode以及sessionID (你可以在选择项目时触发事件)
在此事件中,将carID和SessionID保存在临时表中
表结构
CarTempTable
CarID xxx
SessionID varchar(x)
Date datetime一旦在这个表中有了CarID & SessionID,您就可以用如下查询查询主表中的其他用户
SELECT CarID, CarName FROM Cars WHERE CarID NOT IN (SELECT CarID FROM CarTempTable WHERE SessionID <> "'+ SessionIDofUSER+'";在上述方法中,您必须确保在会话结束时清除特定会话的临时表条目。
这种方法应该适用于您。
编辑:如果它是租车,那么在你的表格中有一个额外的列是很好的,它可以根据用户是否预订汽车来说明汽车是否可用。您可以在上面的临时表中使用它,因为我不确定您如何接受预订,是通过付款还是其他方式
https://stackoverflow.com/questions/12362882
复制相似问题