Home >Backend Development >C++ >Why is my C# `ExecuteNonQuery` throwing a 'Connection property not initialized' error?
ExecuteNonQuery: Connection Property Not Initialized
The issue encountered in the provided C# code is that the Connection property of the SqlCommand named InsertCommand has not been set, leading to the error "ExecuteNonQuery: Connection property has not been initialized."
To resolve this error, you must explicitly assign the Connection property to the InsertCommand. This can be achieved using either the Connection property or the constructor of SqlCommand.
// Option 1: Using the Connection property cmd.InsertCommand.Connection = connection1; // Option 2: Using the constructor cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ", connection1);
Additionally, it is recommended to use the using statement for IDisposable objects such as SqlConnection and SqlCommand. This ensures that the resources are properly disposed of after use.
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(); foreach (EventLogEntry entry in alog.Entries) { // Assign parameter values // ... // Execute the insert command cmd.InsertCommand.ExecuteNonQuery(); } }
By making these adjustments, the connection property of the InsertCommand will be properly set, and the code should execute without encountering the error.
The above is the detailed content of Why is my C# `ExecuteNonQuery` throwing a 'Connection property not initialized' error?. For more information, please follow other related articles on the PHP Chinese website!