我需要您的帮助才能验证导致此错误的原因。
这是堆栈跟踪:
[NullReferenceException: Object variable or With block variable not set.]
Microsoft.VisualBasic.CompilerServices.Container..ctor(Object Instance) +498372
Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn) +112
MicrositioAmece.EAN_Individual.Uno_a_Uno(String iNombreGenerico, String iMarca, String iContenido, String iUnidadMedida, String iVariante) in C:\Users\vflores\Documents\MicrositioAmeceDevelopment\EAN_Individual.aspx.vb:292
MicrositioAmece.EAN_Individual.btnEnviar_Click(Object sender, EventArgs e) in C:\Users\vflores\Documents\MicrositioAmeceDevelopment\EAN_Individual.aspx.vb:96
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
这是代码:
Function Uno_a_Uno(ByVal iNombreGenerico As String, ByVal iMarca As String, ByVal iContenido As String, ByVal iUnidadMedida As String, ByVal iVariante As String)
Uno_a_Uno = False
If iNombreGenerico = "" Or iMarca = "" Or iContenido = "" Or iUnidadMedida = "" Or iVariante = "" Then
Uno_a_Uno = False
Exit Function
End If
Dim objSiebelApp, blogStat
Dim oSiebApp, strCnxn, logstat
Dim oBusObj, oBusComp, bHayRegistro
Dim oBusCompEAN13, oBusCompEAN13Detalle
Dim oBCPickNumContacto, oNumContacto
Dim oBCPickTipoCodigo, oTipoCodigo
'______________Conecta a Siebel
oSiebApp = CreateObject("SiebelDataControl.SiebelDataControl.1")
strCnxn = Replace(ConfigurationSettings.AppSettings("ConnSiebel"), "'", Chr(34))
Dim us As String = ConfigurationSettings.AppSettings("usrSiebel")
Dim pw As String = ConfigurationSettings.AppSettings("pwSiebel")
logstat = oSiebApp.Login(strCnxn, us, pw)
If Not logstat Then
strCnxn = Replace(ConfigurationSettings.AppSettings("ConnSiebel"), "'", Chr(34))
logstat = oSiebApp.Login(strCnxn, us, pw)
If Not logstat Then
'lblError.Text = "Error al conectar: " & CStr(logstat1) & " Desc: " & oSiebApp1.GetLastErrText & "numErr: " & oSiebApp1.GetLastErrCode
lblError.Text = "<br /><div class='Aviso_Error'><span class='Aviso_contenido'>" & _
"Error al Conectar con la base de datos, por favor intentelo más tarde." & _
"</span></div><br />"
End If
Exit Function
End If
oBusObj = oSiebApp.GetBusObject("Account")
oBusComp = oBusObj.GetBusComp("Account")
oBusComp.ActivateField("CSN")
oBusComp.ActivateField("Name")
oBusComp.SetViewMode(3)
oBusComp.ClearToQuery()
oBusComp.SetSearchExpr("[CSN] LIKE " + User.Identity.Name) '140418") '
oBusComp.ExecuteQuery(1)
bHayRegistro = oBusComp.FirstRecord
If bHayRegistro Then
oBusCompEAN13 = oBusObj.GetBusComp("Codigos EAN13 Completos")
Call oBusCompEAN13.NewRecord(1)
'oBusCompEAN13.SetFieldValue("Campo", "Valor")
'Pick List Contacto
oBCPickNumContacto = oBusCompEAN13.GetPicklistBusComp("Num Contacto")
oBCPickNumContacto.ActivateField("Numero de contacto")
oBCPickNumContacto.SetViewMode(3)
oBCPickNumContacto.ClearToQuery()
'oBCPick.SetSearchSpec("ACA SERÍA EL TIPO DE CONTACTO", "RESPONSABLE DE CODIGOS")
oBCPickNumContacto.ExecuteQuery(1)
If oBCPickNumContacto.FirstRecord() Then
oBCPickNumContacto.Pick()
End If
'Pick List Tipo de Código
oBCPickTipoCodigo = oBusCompEAN13.GetPicklistBusComp("Tipo de Codigo (MOSTRAR)")
oBCPickTipoCodigo.ActivateField("Numero de contacto")
oBCPickTipoCodigo.SetViewMode(3)
oBCPickTipoCodigo.ClearToQuery()
oBCPickTipoCodigo.SetSearchSpec("Tipo de Codigo", "R")
oBCPickTipoCodigo.ExecuteQuery(1)
If oBCPickTipoCodigo.FirstRecord() Then
oBCPickTipoCodigo.Pick()
End If
oBusCompEAN13.InvokeMethod("NuevoCodigo", "Null")
sCodigoCompleto = oBusCompEAN13.GetFieldValue("Codigo Completo")
If (oBusCompEAN13.WriteRecord() = False) Then
'lblError.Text = "No fue posible asignar el código individual:" & CStr(logstat) & " Desc: " & oSiebApp.GetLastErrText & "numErr: " & oSiebApp.GetLastErrCode
lblError.Text = "<br /><div class='Aviso_Error'><span class='Aviso_contenido'>" & _
"No fue posible asignar el código, por favor intentelo más tarde." & _
"</span></div><br />"
Exit Function
Else
oBusCompEAN13Detalle = oBusObj.GetBusComp("Detalle EAN13")
Call oBusCompEAN13Detalle.NewRecord(1)
oBusCompEAN13Detalle.SetFieldValue("Nombre Generico", iNombreGenerico)
oBusCompEAN13Detalle.SetFieldValue("Marca Producto", iMarca)
oBusCompEAN13Detalle.SetFieldValue("Contenido Neto Producto", iContenido)
oBusCompEAN13Detalle.SetFieldValue("Unidad Medida Cont Neto", iUnidadMedida)
oBusCompEAN13Detalle.SetFieldValue("Tipo Producto", iVariante)
If (oBusCompEAN13Detalle.WriteRecord() = False) Then
'lblError.Text = "No fue posible guardar el detalle del código individual, sin embargo el código fue asignado: " & sCodigoCompleto '& CStr(logstat) & " Desc: " & oSiebApp.GetLastErrText & "numErr: " & oSiebApp.GetLastErrCode
lblError.Text = "<br /><div class='Aviso_Error'><span class='Aviso_contenido'>" & _
"No fue posible guardar el detalle del código individual, sin embargo el código fue asignado: " & sCodigoCompleto & _
"</span></div><br />"
Exit Function
Else
Uno_a_Uno = True
End If
End If
End If
'limpio los objetos
Call oSiebApp.LogOff()
objSiebelApp = Nothing
blogStat = Nothing
oSiebApp = Nothing
strCnxn = Nothing
logstat = Nothing
oBusObj = Nothing
oBusComp = Nothing
bHayRegistro = Nothing
oBusCompEAN13 = Nothing
oBusCompEAN13Detalle = Nothing
oBCPickNumContacto = Nothing
oNumContacto = Nothing
oBCPickTipoCodigo = Nothing
oTipoCodigo = Nothing
Return Uno_a_Uno
End Function
如您所见,第292行Uno_a_Uno函数返回错误。我已经搜索过,但我无法解决它造成的问题。
非常感谢您的支持。
答案 0 :(得分:1)
或者说OBCPickNumContacto没什么,这意味着你以前打电话给了
oBusCompEAN13.GetPicklistBusComp(&#34; Num Contacto&#34;)由于某种原因失败,或者,
另外,ActivateField可能在内部失败。