정보가 편집 된 SQL에서 가져온 양식이 있습니다. 일단 양식이 닫히면 데이터베이스에 변경 사항을 다시 쓰거나 버리길 원합니다. 비교를 위해 두 세트의 데이터를 저장하고 싶지 않으며 SQL에 대해 다시 쿼리하지 않으려합니다.SqlCommands 집합을 저장하고 vb.net에서 폼에 닫거나 적용하지 않으면 어떻게됩니까?
나는 변경 그러나 저장 될 경우 SqlCommand를 항목의 목록을 작성하고이를 처리하는 아이디어를 내놓았다 I 목록에있는 SqlCommand를 추가하려고 다음과 같은 오류 얻을 :
처리되지 않은를 'System.NullReferenceException'형식의 예외가 Application1.exe에서 발생했습니다.
추가 정보 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
나는 정말 간단한 것을 놓쳤을 지 모르지만 나는 스스로를 볼 수 없습니다.
내 코드는 다음과 같습니다 :
Public Class frm1
Public Property ContID As String
Dim PendingSQLChanges As List(Of SqlCommand)
Private Sub btnAddTel_Click(sender As Object, e As EventArgs) Handles btnAddTel.Click
Using x As New SqlCommand("INSERT into ContactTels (Tel, CoID) Values (@NewValue, @ContID) ;--", cnn)
x.Parameters.Add("@NewValue", SqlDbType.NVarChar, 100).Value = strNewvalue
x.Parameters.Add("@ContID", SqlDbType.Int).Value = ContID
PendingSQLChanges.Add(x) <This is the line I get the error on.
btnSave.Enabled = True
End Using
End Sub
당신은 내가 그렇지 않으면 내가 SQLCommand.Commandtext을 포함하는 문자열의 목록을 사용하는 것 그 이상 사용하는 SqlCommand에 매개 변수를 추가하고 볼 수 있듯이.
내가 저장된 명령을 처리하는 데 사용하는 코드는 작업 목록을 얻을 수있는 경우 :
For x = 0 To PendingSQLChanges.Count - 1
PendingSQLChanges(x).ExecuteNonQuery()
Next
가 올바른뿐만 아니라인가?
using 문은 SqlCommand "x"개체를 삭제합니다. using 문을 제거하십시오. – lex87
더 복잡한 시나리오 에서처럼 for 루프에서 여러 SQLCommands를 만들고 싶습니다. x가 PendingSQLChanges에 전달되면 '복사'되고 원본의 처리가 아무런 영향을 미치지 않는다고 잘못 생각합니까? – LostRob
Dim을 사용하여 바꾸기를 시도했지만 여전히 SQLCommand를 목록에 추가하는 것과 같은 오류가 발생합니다. – LostRob