2016-11-05 6 views
0

私は、連絡先(名前と電話番号)をデータベースに追加し、特定の連絡先を検索するためのプログラムを用意しています。しかし、コマンドを検索しても重複行は返されません。例:同じ名前の連絡先が2つまたは複数ある場合のみ、1つが返されます。なぜ私はすべての重複を見ていないのですか?ここで私はデータベースを検索しても重複が返されない

using (SqlConnection con1 = new SqlConnection(str)) 

{ 
con1.Open(); 
using (SqlCommand query1 = new SqlCommand("SELECT * FROM ContactBook WHERE [email protected]", con1)) 
    { 
     query1.Parameters.Add("Name", SqlDbType.NVarChar).Value = SearchbyName.Name; 
     using (SqlDataReader dr = query1.ExecuteReader()) 
     { 
      if (dr.Read()) 
      { 
      Console.WriteLine(dr[0] + " " + dr[1]); 
      } 
      else 
      { 
      Console.WriteLine("No contact found with name {0}", SearchbyName.Name); 
      } 
     } 
    } 
} 
+1

いいえ、最初の値のみを読み取っています。それらのすべてが必要な場合は、ある種のループ構造を使用します。 –

答えて

2

if(dr.Read())を検索するために使用していたコードは一度だけ読み取られますされますので、一度だけを取得しています。 dr.Read()は、データリーダーからデータを読み取るために使用されます。

using (SqlConnection con1 = new SqlConnection(str)) 

{ 
con1.Open(); 
using (SqlCommand query1 = new SqlCommand("SELECT * FROM ContactBook WHERE [email protected]", con1)) 
    { 
     query1.Parameters.Add("Name", SqlDbType.NVarChar).Value = SearchbyName.Name; 
     using (SqlDataReader dr = query1.ExecuteReader()) 
     { 
      while(dr.Read()) 
      { 
      Console.WriteLine(dr[0] + " " + dr[1]); 
      } 
     } 
    } 
} 
関連する問題