এটি কীভাবে খোলা বা বন্ধ ছিল তা আপনি কীভাবে পরীক্ষা করবেন check
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
তবে, এমনকি রাজ্যটি 'উন্মুক্ত' এটি এই চেকটিতে ব্যর্থ।
এটি কীভাবে খোলা বা বন্ধ ছিল তা আপনি কীভাবে পরীক্ষা করবেন check
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
তবে, এমনকি রাজ্যটি 'উন্মুক্ত' এটি এই চেকটিতে ব্যর্থ।
উত্তর:
আপনার স্কেল সংযোগ.স্টেট ব্যবহার করা উচিত
যেমন,
using System.Data;
if (myConnection != null && myConnection.State == ConnectionState.Closed)
{
// do something
// ...
}
using System.Data;
উত্তরে যুক্ত করা উচিত ছিল , আইএমএইচও। আমি এই নেমস্পেসটি ভুলে গিয়েছিলাম (কী ছিল using System.Data.SqlClient
) এবং ConnectionState
কীওয়ার্ড হিসাবে যোগ করব না যতক্ষণ না এটি যুক্ত না করা হয়। আশা করি এটি কাউকে সাহায্য করবে।
if (myConnection == null || myConnection.State == ConnectionState.Closed) { //Connection is closed } else { //Connection is open in some way }
কি ভাল হয় না ? এইভাবে যদি সংযোগটি নাল হয় তবে এটি "বন্ধ "ও রয়েছে।
আমি যা ব্যবহার করছি তা এখানে:
if (mySQLConnection.State != ConnectionState.Open)
{
mySQLConnection.Close();
mySQLConnection.Open();
}
যে কারণে আমি কেবল ব্যবহার করছি না:
if (mySQLConnection.State == ConnectionState.Closed)
{
mySQLConnection.Open();
}
কারণ কানেকশনস্টেটটিও হতে পারে:
Broken, Connnecting, Executing, Fetching
এ ছাড়াও
Open, Closed
অতিরিক্তভাবে মাইক্রোসফ্ট জানিয়েছে যে ক্লোজিং এবং তারপরে সংযোগটি পুনরায় খোলার ফলে "রাজ্যের মান সতেজ হবে।" এখানে দেখুন http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx
mySQLConnection.State != ConnectionState.Open && mySQLConnection.State != ConnectionState.Connecting
ধীর সংযোগের সাথে পুনরায় সেট করা এড়ানো যায়, তাই না?
.NET ডকুমেন্টেশন বলে: রাষ্ট্রীয় সম্পত্তি: সংযোগ স্টেট মানগুলির একটি বিটওয়াইস সংমিশ্রণ
সুতরাং আমি মনে করি আপনার চেক করা উচিত
!myConnection.State.HasFlag(ConnectionState.Open)
পরিবর্তে
myConnection.State != ConnectionState.Open
কারণ রাজ্যে একাধিক পতাকা থাকতে পারে।
কোনও মাইএসকিউএল সংযোগ খোলা আছে কিনা তা পরীক্ষা করে দেখুন
ConnectionState state = connection.State;
if (state == ConnectionState.Open)
{
return true;
}
else
{
connection.Open();
return true;
}
return true;
? এটিকে মেথডের শেষে, if
/ এর বাইরে রেখে দিন else
!
আপনি এটি ব্যবহার করতে পারেন
if (SQLCON.State == ConnectionState.Closed)
{
SQLCON.Open();
}
using System.Data;
যে কেউ জানেন না বা জানেন না কেন এটি কাজ করছেন না
এই কোডটি কিছুটা বেশি প্রতিরক্ষামূলক, কোনও সংযোগ খোলার আগে, রাষ্ট্রের পরীক্ষা করুন। যদি সংযোগের রাজ্যটি ভাঙা হয় তবে আমাদের এটি বন্ধ করার চেষ্টা করা উচিত। ভাঙ্গা মানে সংযোগটি আগে খোলা ছিল এবং সঠিকভাবে কাজ করছে না। দ্বিতীয় শর্তটি নির্ধারণ করে যে সংযোগ স্থিতিটি আবার খোলার চেষ্টা করার আগে বন্ধ করতে হবে যাতে কোডটি বারবার বলা যেতে পারে।
// Defensive database opening logic.
if (_databaseConnection.State == ConnectionState.Broken) {
_databaseConnection.Close();
}
if (_databaseConnection.State == ConnectionState.Closed) {
_databaseConnection.Open();
}
ডাটাবেস সংযোগের স্থিতি পরীক্ষা করতে আপনি কেবল নিম্নলিখিতটি করতে সহজ করতে পারেন
if(con.State == ConnectionState.Open){}
ওলেডিবি সংযোগের স্থিতি পরীক্ষা করতে এটি ব্যবহার করুন:
if (oconn.State == ConnectionState.Open)
{
oconn.Close();
}
State
ফেরত দিন ConnectionState
public override ConnectionState State { get; }
এখানে অন্যান্য ConnectionState
এনাম
public enum ConnectionState
{
//
// Summary:
// The connection is closed.
Closed = 0,
//
// Summary:
// The connection is open.
Open = 1,
//
// Summary:
// The connection object is connecting to the data source. (This value is reserved
// for future versions of the product.)
Connecting = 2,
//
// Summary:
// The connection object is executing a command. (This value is reserved for future
// versions of the product.)
Executing = 4,
//
// Summary:
// The connection object is retrieving data. (This value is reserved for future
// versions of the product.)
Fetching = 8,
//
// Summary:
// The connection to the data source is broken. This can occur only after the connection
// has been opened. A connection in this state may be closed and then re-opened.
// (This value is reserved for future versions of the product.)
Broken = 16
}
আমি নিম্নলিখিত পদ্ধতি ব্যবহার করি sqlconnection.state
if(conexion.state != connectionState.open())
conexion.open();
connectionState.open()
অস্তিত্ব নেই; তুমি কি বোঝাতে চাইলে ConnectionState.Open
?
SqlConnectionState