哈希集不返回唯一值

时间:2013-07-29 13:55:27

标签: c# sql hashset

我只想在我的SQL查询中使用hashset中的唯一值。

存储唯一值的代码:

var id = new HashSet<String>();
id.Add("A");
id.Add("A");
id.Add("B");

现在,我想将唯一值传递给SQL查询,并查找与唯一ID匹配的记录。

我是按照以下方式做的。

DataTable da2 = new DataTable();
foreach(var grp in id)
{
    string uid = grp;
    string s3 = "Select id, fname, lname, dob from ifile where id= @uid";
    SqlCommand cmd1 = new SqlCommand(s3, con);
    cmd1.Parameters.AddWithValue("@id", uid);
    con.Open();
    da2.Load(cmd1.ExecuteReader());
    con.Close();
}
Gridview1.DataSource=da2;

当我执行此查询时,它也会返回重复的记录。

此外,之前我只是显示了唯一的ID,因此我使用了以下方法,它运行正常。

GridView1.DataSource = id.Select(id1 => new { id1 }).ToList();

由于我想显示更多属性,我无法使用上述方法。

有人可以帮帮我吗?

感谢。

1 个答案:

答案 0 :(得分:3)

如果有多个具有相同ID的记录,您可能只想将SQL语句修改为SELECT DISTINCTSELECT TOP 1。也就是说,在数据库中拥有多个具有相同ID的记录很麻烦。最好将该列命名为其他内容。