-2

SQL クエリでハッシュセットからの一意の値のみが必要です。

一意の値を格納するためのコード:

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();

もっと属性を表示したいので、上記の方法は使えません。

誰かがこれで私を助けてくれますか?

ありがとう。

4

1 に答える 1

3

同じ ID を持つレコードが複数ある場合はSELECT DISTINCT、SQL ステートメントを単に変更したいだけかもしれません。SELECT TOP 1とはいえ、データベースに同じIDのレコードが複数存在するのは面倒です。その列に別の名前を付けたほうがよいでしょう。

于 2013-07-29T14:23:57.553 に答える