आप कैसे जांचते हैं कि यह खुला या बंद है जो मैं उपयोग कर रहा था
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
हालाँकि, यहां तक कि राज्य 'खुला' है, यह इस चेक पर विफल रहता है।
आप कैसे जांचते हैं कि यह खुला या बंद है जो मैं उपयोग कर रहा था
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
हालाँकि, यहां तक कि राज्य 'खुला' है, यह इस चेक पर विफल रहता है।
जवाबों:
आपको उपयोग करना चाहिए SqlConnection.State
जैसे,
using System.Data;
if (myConnection != null && myConnection.State == ConnectionState.Closed)
{
// do something
// ...
}
using System.Data;
जवाब में जोड़ा जाना चाहिए , IMHO। मैं इस नाम स्थान को भूल गया था (तब तक 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();
}
क्योंकि ConnectionState भी हो सकता है:
Broken, Connnecting, Executing, Fetching
के अतिरिक्त
Open, Closed
इसके अतिरिक्त Microsoft बताता है कि समापन, और फिर कनेक्शन को फिर से खोलना "राज्य के मूल्य को ताज़ा करेगा।" यहां देखें 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 प्रलेखन कहता है: राज्य संपत्ति: ConnectionState मूल्यों का एक बिटवाइज़ संयोजन
इसलिए मुझे लगता है कि आपको जांच करनी चाहिए
!myConnection.State.HasFlag(ConnectionState.Open)
के बजाय
myConnection.State != ConnectionState.Open
क्योंकि राज्य में कई झंडे हो सकते हैं।
जांचें कि क्या MySQL कनेक्शन खुला है
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){}
OleDbConnection राज्य की जाँच करने के लिए इसका उपयोग करें:
if (oconn.State == ConnectionState.Open)
{
oconn.Close();
}
State
ये वापिस ConnectionState
public override ConnectionState State { get; }
यहाँ अन्य ConnectionState
enum हैं
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
}
SqlConnectionState
एनम के रूप में एनम का उपयोग करें और इसे एक स्ट्रिंग में न