我只想在我的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();
由于我想显示更多属性,我无法使用上述方法。
有人可以帮帮我吗?
感谢。
答案 0 :(得分:3)
如果有多个具有相同ID的记录,您可能只想将SQL语句修改为SELECT DISTINCT
或SELECT TOP 1
。也就是说,在数据库中拥有多个具有相同ID的记录很麻烦。最好将该列命名为其他内容。