0
아래 코드는 오류없이 실행되지만 MS Access 테이블은 업데이트되지 않습니다. 내가 뭘 놓치고 있니? 이러한 접근 방식의vb.net을 통한 MS 액세스 업데이트
sql = "UPDATE [tblSend] SET [UploadedSuccessfullyOn] = #" & Now & "# WHERE (([UploadID]) = " & dr("UploadID") & ");"
Dim cmd As OleDbCommand
cmd = New OleDbCommand(sql, cnn)
cmd.ExecuteNonQuery()
cmd.Dispose()
없음이 업데이트되지 : 더 - 바람직하지/비 매개 변수 방식에 값을 추가 단순히
sql = "UPDATE [tblSend] SET [UploadedSuccessfullyOn] = ? WHERE (([UploadID]) = ?);"
또는 :
Try
cnn = New OleDbConnection(ConfigurationManager.ConnectionStrings("accConnectionString").ToString())
cnn.Open()
Catch ex As Exception
Debug.Print("Oops - no connection to database")
Exit Sub
End Try
Dim sql As String
sql = "SELECT * FROM tblSend WHERE UploadedSuccessfullyOn is null ORDER BY QueuedOn;"
Dim da As New OleDbDataAdapter(sql, cnn)
Dim ds As New DataSet
da.Fill(ds, "dsQueuedToSend")
For Each dr As DataRow In ds.Tables("dsQueuedToSend").Rows
' Perform other unrelated tasks in this space, removed for brevity
' If those other tasks were successful, update Access.
If success = True Then
sql = "UPDATE [tblSend] SET [UploadedSuccessfullyOn] = @uploadedOn WHERE (([UploadID]) = @uploadId);"
Dim cmd As OleDbCommand
cmd = New OleDbCommand(sql, cnn)
cmd.Parameters.Add("@uploadedOn", OleDbType.Date).Value = Now
cmd.Parameters.Add("@uploadedId", OleDbType.Integer).Value = dr("UploadID")
cmd.ExecuteNonQuery()
cmd.Dispose()
Console.WriteLine("Success: updated.")
Else
Console.WriteLine("Failed: Not updated.")
End If
Next
da.Dispose()
cnn.Close()
또한 함께 시도했다 MS 액세스 테이블. 아이디어? 감사!
"오류없이 실행"이라고 말하면 응용 프로그램을 완전히 실행했는데 충돌이 발생하지 않았거나 디버거에서 코드를 단계적으로 실행 한 다음 예상되는 모든 코드 경로에 도달했으며 모든 예상 런타임 값이 정확 했습니까? – David
두 번째 단계 : 디버거를 단계별로 실행하고 연결이 열려 있는지, SQL 문이 구문 상 올바르게 작동하는 sql (작동중인 Access에서 수동으로 실행하여 복사하여 비 매개 변수 옵션을 테스트했는지), datarow 정확한 값을 가지고 있으며, 내가 말할 수있는 가장 좋은 것은 런타임 값의 나머지 부분이 정확한 것입니다. 이것이 내가 왜곡당한 이유입니다 -이 코드처럼 보이게 **해야합니다, 네? – ericrdb
연결 문자열을 알려주십시오. – majjam