आपको SqlCommand
. से कनेक्शन असाइन करने की आवश्यकता है , आप कंस्ट्रक्टर या संपत्ति का उपयोग कर सकते हैं:
cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ");
cmd.InsertCommand.Connection = connection1;
मैं using-statement
. का उपयोग करने की दृढ़ता से अनुशंसा करता हूं किसी भी प्रकार के कार्यान्वयन के लिए IDisposable
जैसे SqlConnection
, यह कनेक्शन भी बंद कर देगा:
using(var connection1 = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=syslog2;Integrated Security=True"))
using(var cmd = new SqlDataAdapter())
using(var insertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) "))
{
insertCommand.Connection = connection1;
cmd.InsertCommand = insertCommand;
//.....
connection1.Open();
// .... you don't need to close the connection explicitely
}
इसके अलावा आपको एक नया कनेक्शन और DataAdapter
. बनाने की आवश्यकता नहीं है foreach
. में प्रत्येक प्रविष्टि के लिए , भले ही कनेक्शन बनाना, खोलना और बंद करना नहीं . करता हो इसका मतलब है कि ADO.NET एक भौतिक . बनाएगा, खोलेगा और बंद करेगा कनेक्शन लेकिन उपलब्ध कनेक्शन के लिए कनेक्शन-पूल में दिखता है। फिर भी यह एक अनावश्यक उपरि है।