在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);
}
}
}
}
答案 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]);
}
}
}
}