从SQL Server的组合框自动添加值中删除重复项
本文关键字:删除 添加 Server SQL 组合 | 更新日期: 2023-09-27 18:07:05
我使用SQL Server 2012,并在c#中与VS2013开发Windows窗体应用程序。我有代码自动添加项目从SQL Server到组合框:
void comboboxadd()
{
SqlConnection cnn = new SqlConnection(global::BeautyShop.Properties.Settings.Default.BeautyMaConnectionString);
cnn.Open();
SqlCommand cmm = new SqlCommand("select SupName from MPham group by SupName order by SupName asc", cnn);
try
{
SqlDataReader dr = cmm.ExecuteReader();
while (dr.Read())
{
comboBox2.Items.Add(dr["SupName"]);
}
dr.Close();
dr.Dispose();
}
catch (Exception ex)
{
}
}
我的问题是:当我在SupName
列(不是主键)上有相同的项目时,项目也将被添加到组合框中。
的例子:
SupName
-----------
ABC
Joli
ABC
Str
Joli
组合框的项目列表是:
-----------
ABC
Joli
ABC
Str
Joli
-----------
我希望我的组合框列表是这样的:
ABC
Joli
Str
我该怎么做呢?
感谢支持
通过链接SQL查询来选择不同的项,就像这样
SqlCommand cmm = new SqlCommand(
@"select Distinct SupName
from MPham
group by SupName
order by SupName asc", cnn);
你只需要改变你的查询:
不需要使用group by
试
select distinct SupName from MPham order by SupName asc
参见About Sql Distinct Here
你也可以试试这个
void comboboxadd()
{
SqlConnection cnn = new SqlConnection(global::BeautyShop.Properties.Settings.Default.BeautyMaConnectionString);
cnn.Open();
SqlCommand cmm = new SqlCommand("select SupName from MPham group by SupName order by SupName asc", cnn);
try
{
SqlDataReader dr = cmm.ExecuteReader();
while (dr.Read())
{
//Check here if item does not exist then add it.
if(!comboBox2.Items.Contains(dr["SupName"]))
comboBox2.Items.Add(dr["SupName"]);
}
dr.Close();
dr.Dispose();
}
catch (Exception ex)
{
}
}