我明白,這個問題已被問了很多次,但連接錯誤 給我一個很難。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()** **兩次**。一次在'if'和一次'while'中,這意味着你跳過第一個結果,因爲[Read前進到下一個記錄](https://msdn.microsoft.com/en-us/library/system.data .sqlclient.sqldatareader.read(v = vs.110).aspx) – stuartd