這是我的代碼。已經有一個開放的DataReader與這個Command相關聯,必須先關閉
/// <summary>
/// Method calls stored procedure and fills DataSet of contacts associated with Lead
/// </summary>
/// <param name="leadID">The ID associated with a Lead</param>
/// <returns>contacts list as DataSet</returns>
public static DataSet GetContactResultSetByLead(int leadID)
{
SqlCommand Sqlmd = new SqlCommand("dbo.proc_contact");
Sqlmd.CommandType = CommandType.StoredProcedure;
Sqlmd.Parameters.Add("@LeadInfoID", SqlDbType.Int).Value = leadID;
Sqlmd.Connection = m_ConStr;
SqlDataAdapter da = new SqlDataAdapter(Sqlmd);
DataSet data = new DataSet();
try
{
da.Fill(data);
}
finally
{
m_ConStr.Close();
}
return data;
}
什麼是'm_ConStr'? –
更改此行Sqlmd.Parameters.Add(「@ LeadInfoID」,SqlDbType.Int).Value = leadID;到Sqlmd.Parameters.AddWithValue(「@ LeadInfoID」,leadID);如果您想保留全局連接,請檢查該連接的狀態(如果已打開),然後在使用它之前關閉它。減少你的代碼並使用有意義的變量名字....!將你的Connection連接到using(){} – MethodMan
在da.Fill調用期間將執行Sqlmd。 m_ConStr似乎是一個名字很差的變量 - 它看起來是指連接本身,而不是連接字符串。 – RQDQ