आप अपनी क्वेरी के परिणामों को मेमोरी में लोड कर सकते हैं, फिर कनेक्शन बंद कर सकते हैं और फिर भी एक IDataReader
लौटा सकते हैं जो अपेक्षा के अनुरूप काम करता है। ध्यान दें कि इसमें मेमोरी खर्च होती है।
public IDataReader getRecord(string query)
{
MySqlDataReader reader;
using (var connection = new MySqlConnection(connectionString))
{
connection.Open();
using (var cmd = new MySqlCommand(query, connection))
{
reader = cmd.ExecuteReader();
var dt = new DataTable();
dt.Load( reader );
return dt.CreateDataReader();
}
}
return null;
}
कॉल करने वालों में:
String sql = "SELECT * FROM `table`";
var dr = objDB.getRecord(sql); // or DataTableReader dr = ...
if (dr.Read())
{
// some code goes here
}