搜索数据库不会返回重复项

时间:2016-11-05 01:27:25

标签: c# sql database

在c#中我有一个程序,通过该程序我们可以向数据库添加联系人(姓名和电话号码),还可以搜索特定的联系人。但是搜索命令时不会返回重复的行。示例:如果有两个或多个具有相同名称的联系人,则只返回一个。为什么我没有看到所有的重复。这是我用来搜索的代码

using (SqlConnection con1 = new SqlConnection(str))

{
 con1.Open();
 using (SqlCommand query1 = new SqlCommand("SELECT * FROM ContactBook WHERE Name=@Name", 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 个答案:

答案 0 :(得分:2)

if(dr.Read())只会读一次,所以你只会得到一次。 dr.Read()用于从数据读取器读取数据。

using (SqlConnection con1 = new SqlConnection(str))

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