ExecuteNonQuery: 연결 속성이 초기화되지 않음
제공된 C# 코드에서 발생한 문제는 InsertCommand라는 SqlCommand의 연결 속성이 초기화되지 않았다는 것입니다. 설정되어 "ExecuteNonQuery: 연결 속성이 설정되지 않았습니다"라는 오류가 발생합니다. 초기화되었습니다."
이 오류를 해결하려면 InsertCommand에 연결 속성을 명시적으로 할당해야 합니다. 이는 Connection 속성이나 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);
또한 SqlConnection 및 SqlCommand와 같은 IDisposable 개체에 대해서는 using 문을 사용하는 것이 좋습니다. 이렇게 하면 사용 후 리소스가 올바르게 폐기됩니다.
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(); } }
이러한 조정을 통해 InsertCommand의 연결 속성이 올바르게 설정되고 코드가 오류 없이 실행되어야 합니다.
위 내용은 내 C# `ExecuteNonQuery`에서 '연결 속성이 초기화되지 않음' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!