यहां मेरा प्रस्तावित (समस्या स्थान को चित्रित करने के लिए बहुत सरल है) एक सी # कंसोल एप्लिकेशन के लिए डिज़ाइन। डेटाबेस कनेक्शन IDISposable लागू करते हैं, और यह समाधान using
डेटाबेस कनेक्शन ऑब्जेक्ट्स की अनुमति नहीं देता है। क्या कोई कंसोल एप्लिकेशन के लिए एक और सही संरचना प्रस्तावित कर सकता है? यह एक समस्या है जिसे मुझे अक्सर हल करने की आवश्यकता होती है।आईडीएसओएसपेबल डेटाबेस संसाधनों का कुशलतापूर्वक उपयोग करने के लिए मैं एक सी # कंसोल एप्लिकेशन कैसे बना सकता हूं?
class Program
{
SQLiteConnection sourceConnection;
SQLiteConnection destinationConnection;
static void Main(string[] args)
{
Program shell = new Program();
// get connection strings from command line arguments
string sourceConnectionString = shell.getConnectionString(args);
string destinationConnectionString = shell.getConnectionString(args);
// call non-static methods that use
shell.setUpConnections(sourceConnectionString, destinationConnectionString);
shell.doDatabaseWork();
}
private void setUpConnections(string sourceConnectionString, string destinationConnectionString)
{
sourceConnection = new SQLiteConnection(sourceConnectionString);
destinationConnection = new SQLiteConnection(destinationConnectionString);
}
private void doDatabaseWork()
{
// use the connections here
}
}
संपादित करें:
कुछ लोगों को समझ नहीं सकता क्यों मैं उन्हें सदस्य चर के रूप में चाहते हैं।
foreach (Row sourceRow in DBResultSet)
{
string sourceXml = sourceRow.Columns["MyColumnName"].Value;
string destinationXML = transformUsingXSLT(sourceXml);
writeToDestination(destinationXml);
}
देखें कि कैसे मैं इन कनेक्शन इस लूप के जीवन के लिए खुला रखने के लिए चाहते हैं: यहाँ अपने प्रयोग के मामले doDatabaseWork में जाना होगा की (एक छोटे से psuedocoded) है?
आरई: संपादित करें। फिर भी ... नहीं –