c# - এটি বন্ধ করার আগে কি আমাকে একটি SQLConnection বন্ধ করতে হবে?




asp.net using (6)

না, ScllConnection এ ডিসপ্লে () কে কল করা বন্ধ করে ()।

MSDN - SqlConnection.Dispose ()

ডিসপোজেবল অবজেক্ট সম্পর্কে আমার অন্য প্রশ্নে , আমরা কি বন্ধ ব্লকটি বন্ধ করার আগে কল করা উচিত?

using (SqlConnection connection = new SqlConnection())
using (SqlCommand command = new SqlCommand())
{
    command.CommandText = "INSERT INTO YourMom (Amount) VALUES (1)";
    command.CommandType = System.Data.CommandType.Text;

    connection.Open();
    command.ExecuteNonQuery();

    // Is this call necessary?
    connection.Close();
}

না, SqlConnection ক্লাস IDISposable থেকে উত্তরাধিকারী, এবং যখন (সংযোগের বস্তুর জন্য) ব্যবহার শেষ হয়ে গেলে, এটি স্বয়ংক্রিয়ভাবে SqlConnection ক্লাসে নিষ্পত্তিকে কল করে।


না, ব্লক কলগুলি ব্যবহার করা আপনার পক্ষে কোনওভাবে Dispose() , সুতরাং Close() কে কল করার প্রয়োজন নেই।


ব্যবহার করা শব্দটি সঠিকভাবে সংযোগটি বন্ধ করবে তাই বন্ধ করার জন্য অতিরিক্ত কলটি প্রয়োজন হয় না।

এসকিউএল সার্ভার সংযোগ পুলিং উপর এমএসডিএন নিবন্ধ থেকে:

"আমরা দৃঢ়ভাবে সুপারিশ করি যে আপনি যখন এটি ব্যবহার করে শেষ করেন তখন সংযোগটি বন্ধ করুন যাতে সংযোগটি পুলে ফিরিয়ে দেওয়া হয়। আপনি সংযোগ বস্তুর বন্ধ বা নিষ্পত্তি পদ্ধতিগুলি ব্যবহার করে অথবা এটির মধ্যে সমস্ত সংযোগ খোলার মাধ্যমে এটি করতে পারেন। সি # এ বিবৃতি ব্যবহার করে "

SqlConnection বাস্তব বাস্তবায়ন। নেট প্রতিফলক ব্যবহার করে নিষ্পত্তি করুন:

// System.Data.SqlClient.SqlConnection.Dispose disassemble
protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._userConnectionOptions = null;
        this._poolGroup = null;
        this.Close();
    }
    this.DisposeMe(disposing);
    base.Dispose(disposing);
}

নেট প্রতিফলক ব্যবহার করে SqlConnection Disassembly:

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._userConnectionOptions = null;
        this._poolGroup = null;
        this.Close();
    }

    this.DisposeMe(disposing);
    base.Dispose(disposing);
}

এটি বন্ধ () -এর ভিতরে বন্ধ ()


প্রতিফলক ব্যবহার করে, আপনি দেখতে পারেন যে SqlConnection এর Dispose পদ্ধতিটি আসলে Close() ;

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._userConnectionOptions = null;
        this._poolGroup = null;
        this.Close();
    }
    this.DisposeMe(disposing);
    base.Dispose(disposing);
}




sqlcommand