この質問は何度も尋ねられましたが、 接続のエラーは私に苦労していることを理解しています。ExecuteReader:接続プロパティが初期化されていません
のExecuteReader:Connectionプロパティは、私はテーブルから電話番号を検索しようとしている
初期化されていません。私は他のスレッドで与えられたソリューションのほとんどすべてを試しましたが、エラーを修正する方法を理解できていないようです。私はsqlconnectionとコマンドを関連付ける必要がありますが、私はそれを行うことができませんでした。
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
using(SqlCommand cmd1 = new SqlCommand())
{
conn.Open();
cmd1.CommandType = System.Data.CommandType.StoredProcedure;
cmd1.CommandText = "SearchName";
SqlParameter p1 = new SqlParameter();
p1.ParameterName = "@Name";//Stored Proc
p1.Value = SearchbyName.Name;
cmd1.Parameters.Add(p1);
using (SqlDataReader dr = cmd1.ExecuteReader())
{
if (dr.Read())
{
while (dr.Read())
{
Console.WriteLine(dr[0] + " " + dr[1]);
}
SearchExit();
}
else
{
Console.WriteLine("No contact found with name {0}", SearchbyName.Name);
}
cmd1.ExecuteNonQuery();
cmd1.Connection = conn;
conn.Close();
SearchExit();
}
}
'cmd1.ExecuteNonQuery();と' cmd1.ExecuteReader() 'を呼び出す必要はありません – stuartd
また、 'dr.Read()' **を2回呼びます**。一度は 'if'に、一度は' while'に入ると、最初の結果はスキップされます。[次のレコードに進む](https://msdn.microsoft.com/en-us/library/system.data) .sqlclient.sqldatareader.read(v = vs.110).aspx) – stuartd