OOB Silverlight 응용 프로그램을 개발 중이며 COM Toolkit (http://silverlightcom.codeplex.com)을 사용하는 언어는 Visual Basic (VB)입니다. 이 팩을 사용하면 ADO.NET을 사용하여 내 응용 프로그램을 Microsoft SQL Server 데이터베이스와 연결할 수 있습니다. 그것은 작동하지만 null 값을 매개 변수에 삽입하려고하면 예외가 throw됩니다 : 0x800A0BB9 (http://prntscr.com/43zwyr).AddWithValue()가 DBNull.Value (Exception 0x800A0BB9)을 허용하지 않습니다. - Silverlight - VB
내 코드 (내가 가장 간단한 스트레치를 게시 할 예정입니다)입니다 :
Private Const SqlCreateJob As String = "insert into Cargos(Nome_carg, Desc_carg) values(?, ?)"
Public Shared Sub CreateJob(ByVal j As Job)
Dim conn As AdoConnection = DbUtil.GetConn
Dim cmd As AdoCommand = conn.CreateCommand
cmd.CommandText = SqlCreateJob
cmd.Parameters.AddWithValue("Nome_carg", j.Name)
cmd.Parameters.AddWithValue("Desc_carg", j.Desc)
For Each p As AdoParameter In cmd.Parameters
If p.Value = Nothing Then
p.Value = DBNull.Value
End If
Next
cmd.ExecuteNonQuery()
conn.Close()
End Sub
그리고 클래스 작업 :
Public Class Job
Property Code() As Integer
Property Name() As String
Property Desc() As String
End Class
값 제품 설명은, 직장에서, 널 (null)이 될 수 있습니다. 그리고 만약 내가 넣으면 cmd.Parameters.AddWithValue("Desc_carg", DBNull.Value)
그것은 여전히 작동하지 않습니다. 내가 무엇을 할 수 있을지? .Message
System.Runtime.InteropServices.COMException (0x800A0BB9): Exception from HRESULT: 0x800A0BB9 ---> MS.Internal.ComAutomation.ComAutomationObjectException: The arguments are incorrect, are out of acceptable range, or are in conflict.(Source=ADODB.Parameter) (HelpFile=C:\WINDOWS\HELP\ADO270.CHM#1240641) em MS.Internal.ComAutomation.ComAutomationNative.CheckInvokeHResult(UInt32 hr, String memberName, String exceptionSource, String exceptionDescription, String exceptionHelpFile, UInt32 exceptionHelpContext) em MS.Internal.ComAutomation.ComAutomationNative.Invoke(Boolean tryInvoke, String memberName, ComAutomationInvokeType invokeType, ComAutomationInteropValue[] rgParams, IntPtr nativePeer, ComAutomationInteropValue& returnValue) em MS.Internal.ComAutomation.ComAutomationObject.InvokeImpl(Boolean tryInvoke, String name, ComAutomationInvokeType invokeType, Object& returnValue, Object[] args) em MS.Internal.ComAutomation.ComAutomationObject.Invoke(String name, ComAutomationInvokeType invokeType, Object[] args) em System.Runtime.InteropServices.Automation.AutomationMetaObjectProvider.TrySetMember(SetMemberBinder binder, Object value) em System.Runtime.InteropServices.Automation.AutomationMetaObjectProviderBase.<.cctor>b__3(Object obj, SetMemberBinder binder, Object value) em CallSite.Target(Closure , CallSite , Object , Int32) em System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) em CallSite.Target(Closure , CallSite , Object , Int32) em ComToolkit.Data.AdoParameter.set_Type(DbType value) em ComToolkit.Data.AdoParameter..ctor(Object adoParameter, String name, Object value) em CallSite.Target(Closure , CallSite , Type , Object , String , Object) em System.Dynamic.UpdateDelegates.UpdateAndExecute4[T0,T1,T2,T3,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) em CallSite.Target(Closure , CallSite , Type , Object , String , Object) em ComToolkit.Data.AdoCommand.CreateParameter(String name, Object value) em ComToolkit.Data.AdoParameterCollection.AddWithValue(String name, Object value) em Corporativo.Dao.CargoDao.AddParameters(AdoCommand cmd, Cargo c) em Corporativo.Dao.CargoDao.CriarCargo(Cargo c) em Corporativo.UCCadCargos.Create()
그리고 : HRESULT에서
예외 : 0x800A0BB9
링크를 게시하는 대신 예외를 복사하여 붙여 넣으십시오. 링크가 더 이상 작동하지 않는 경우 나중에이 질문이 다른 사람들에게 도움이 될 수 있습니다. –
네, 문제 없습니다. –
'Nome_carg'과'Desc_carg' 둘 다 널값을 허용합니까? –