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

我需要它添加我的数据库,因为可能有更多的车辆太添加。

ASP.NET 下拉列表中列出数据库中的重复值

当然,您可以使用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 循环