ExecuteReader:连接属性没有初始化

本文关键字:初始化 属性 连接 ExecuteReader | 更新日期: 2023-09-27 18:16:46

我明白这个问题已经被问过很多次了,但错误与连线让我很难受。

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();
   }
 }

ExecuteReader:连接属性没有初始化

cmd1.Connection = conn; 

应该在实例化之后,或者在SqlCommand构造函数中传递conn对象。

您正在执行查询后设置Connection属性:

using (SqlDataReader dr = cmd1.ExecuteReader())
// More code here
cmd1.Connection = conn;

设置cmd1。Connection = conn;之前cmd1.ExecuteReader。