これは私のコードです。このコマンドに関連付けられている開いているDataReaderが既にあります。最初に閉じる必要があります。
/// <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)に設定します。グローバル接続を維持する場合は、開いている場合はその接続の状態を確認し、使用する前に閉じます。あなたのコードを改訂し、わかりやすい名前を使用してください....! using(){} – MethodMan
の周囲に接続をラップするda.Fill呼び出し中にSqlmdが実行されます。 m_ConStrは名前のない変数のように見えます。接続文字列ではなく、接続自体を参照するように見えます。 – RQDQ