gpt4 book ai didi

C# 如何消除comboBox 中的重复值?

转载 作者:行者123 更新时间:2023-11-30 14:50:17 24 4
gpt4 key购买 nike

我想从 OleDbDataReader 中删除重复项应该很容易,但我正在旋转我的轮子。任何帮助将不胜感激!

        private void Database_Load(object sender, EventArgs e)
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query = "select * from PPAPdatabase";
command.CommandText = query;

OleDbDataAdapter da = new OleDbDataAdapter(command);
dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;

OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
comboBox_Owner.Items.Add(reader["Owner"].ToString());
}

最佳答案

像这样重构你的 SQL 查询:

select distinct Owner from PPAPdatabase

代替

select * from PPAPdatabase

您的代码中唯一需要的列是所有者,然后只获取该列并对其应用 DISTINCT 子句以获得该列的不同值。

或者替换下面几行:

OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
comboBox_Owner.Items.Add(reader["Owner"].ToString());
}

通过这个:

var owners = dt.AsEnumerable().Select(row => row["Owner"].ToString()).Distinct();
foreach(var owner in owners)
{
comboBox_Owner.Items.Add(owner);
}

在此解决方案中,我们对您的数据库使用一个 SQL 查询,并重复使用结果来提取不同的所有者。

关于C# 如何消除comboBox 中的重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37057116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com