ASP.NET 下拉列表中列出数据库中的重复值
本文关键字:数据库 NET 下拉列表 ASP | 更新日期: 2023-09-27 17:57:02
我的数据库是这样的。
Vehicle Make | Vehicle Model
-----------------------------
Toyota | AQUA
HONDA | FIT
Toyota | Prius
DropDownList1
,像这样填充。
using (SqlConnection con = new SqlConnection(constring))
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT VehicleMake FROM VehicleDB", con);
adapter.Fill(subjects);
con.Open();
DropDownList1.DataSource = subjects;
DropDownList1.DataTextField = "VehicleMake";
DropDownList1.DataValueField = "VehicleMake";
DropDownList1.DataBind();
con.Close();
}
但是由于我有重复的数据(2 个丰田的数据),它也会在 DropDownList 中显示它们。
是否可以过滤并且只有 1 辆丰田?
-PS
我需要它添加我的数据库,因为可能有更多的车辆太添加。
当然,您可以使用DISTINCT
:
SqlDataAdapter adapter = new SqlDataAdapter("SELECT DISTINCT VehicleMake FROM VehicleDB", con);
您可能还想添加一个ORDER BY
:
string sql = @"SELECT DISTINCT VehicleMake
FROM VehicleDB
ORDER BY VehicleMake ASC";
using(var adapter = new SqlDataAdapter(sql, con))
{
// ...
}
首先,
您可以将查询更改为"从 VehicleDB 中选择车辆制造,其中 VehicleMake <>'FIT Toyota'"并且更改查询不适合您,然后您可以执行以下操作
var subjects= ds.Tables["VehicleDB"];
adresse.DefaultView.RowFilter = "VehicleMake LIKE '%TEST%'";
DropDownList1.DataSource = subjects;
DropDownList1.DataTextField = "VehicleMake";
DropDownList1.DataValueField = "VehicleMake";
DropDownList1.DataBind();
即使这样也行不通 应用 LINQ - 数据表的 for 循环