NonQuery를 실행할 수 없음: 연결이 초기화되지 않음
다음을 사용하여 쿼리를 실행하려고 하면 반복되는 문제가 발생합니다. ExecuteNonQuery:
ExecuteNonQuery: Connection property has not been initialized.
설명
이 오류는 SqlCommand 개체의 Connection 속성이 할당되지 않은 경우 발생합니다. Connection 속성은 SqlCommand와 데이터베이스 간의 연결을 설정합니다. 연결이 설정되지 않으면 ExecuteNonQuery를 실행할 수 없습니다.
해결 방법
이 문제를 해결하려면 SqlCommand 개체의 Connection 속성에 데이터베이스 연결을 할당하세요.
cmd.InsertCommand.Connection = connection1;
또한 SqlConnection과 같은 일회용 리소스에는 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) ")) { // Assign connection insertCommand.Connection = connection1; // Set other properties... connection1.Open(); // Execute query... } } }
최적화
성능을 더욱 최적화하려면 고리. 루프 외부에서 연결 및 데이터 어댑터를 설정하고 루프 내에서 재사용합니다. 이렇게 하면 연결을 여러 번 만들고 닫는 데 따른 오버헤드가 줄어듭니다.
위 내용은 '연결이 초기화되지 않음'으로 인해 ExecuteNonQuery가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!