在Infopath里面用VB.net编程,老是出现System.NullReferenceException错误

geng3stone 2008-12-03 09:05:20
System.NullReferenceException was unhandled by user code
Message="Object reference not set to an instance of an object."
Source="LeaveRequisitionForm"
StackTrace:
at LeaveRequisitionForm.FormCode.FormEvents_Loading(Object sender,
LoadingEventArgs e)
at
Microsoft.Office.InfoPath.Internal.FormEventsHost.OnLoad(DocReturnEvent
pEvent)
at
Microsoft.Office.Interop.InfoPath.SemiTrust._XDocumentEventSink2_SinkHelper.OnLoad(DocReturnEvent pEvent)

大概就是这样的问题,我是初学者
现在再用Infopath+Workflow搞Sharepoint,但是现在有一些在infopath中的数据处理
但是现在哪怕是用MSDN上的实例编程也会出现这样的错误
看国外的一些网站说是Xpathnavigator没有声明的原因
但是我用类似的代码
public XPathNavigator _xPathNav
{
get { return this.CreateNavigator(); }
}
来声明,也不行,直接就报语法错误了
但是实际上开始就有import System.XML.Xpath的声明啊,应该包括Xpathnavigator的吧
哪位帮个忙,我很急,下周就要叫初稿了
...全文
334 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
geng3stone 2008-12-29
  • 打赏
  • 举报
回复
还是不行。。。最后直接用Infopath,基本实现功能了,不过还是感谢楼上
blues_zhao_yang 2008-12-05
  • 打赏
  • 举报
回复
试试看
dim target1 as New XPathNavigator().SelectSingleNode("/my:myfields/my:allday",NamespaceManager)

如果还不行的话打出target1.的时候仔细看看后面的属性和方法里面都有些什么,看看value的解释是什么。
geng3stone 2008-12-04
  • 打赏
  • 举报
回复
Imports Microsoft.Office.InfoPath
Imports System
Imports System.Xml
Imports System.Xml.XPath
Imports System.Windows.Forms
Imports mshtml





Namespace init
Public Class FormCode
' 启用浏览器功能的表单不支持成员变量。
' 请使用代码从 FormState 词典
' 写入和读取这些值,如下所示:
'
' 注意: 以下是 Microsoft Office InfoPath 所需的过程。

' 可以使用 Microsoft Office InfoPath 对其进行修改。


Private Sub InternalStartup(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Startup
AddHandler EventManager.FormEvents.Loading, AddressOf FormEvents_Loading
AddHandler EventManager.XmlEvents("/my:myFields/my:AllDay").Changed, AddressOf AllDay_Changed

AddHandler EventManager.XmlEvents("/my:myFields/my:Date/my:StartDate").Changed, AddressOf StartDate_OnAfterChanged
AddHandler DirectCast(EventManager.ControlEvents("CTRL27_5"), ButtonEvent).Clicked, AddressOf CTRL27_5_Clicked
AddHandler EventManager.XmlEvents("/my:myFields/my:DTTest").Changed, AddressOf DTTest_Changed
AddHandler EventManager.XmlEvents("/my:myFields/my:DTTest").Changing, AddressOf DTTest_Changing
AddHandler EventManager.XmlEvents("/my:myFields/my:DTTest").Validating, AddressOf DTTest_Validating



End Sub


Public Sub FormEvents_Loading(ByVal sender As Object, ByVal e As LoadingEventArgs)
' 在此处编写代码。


Dim instance As DataSource = Me.MainDataSource

Dim mydate As XPathNavigator = CreateNavigator().SelectSingleNode("/my:myFields/my:DTTest", NamespaceManager)

mydate.SetValue(System.DateTime.Now.ToString("yyyy-MM-dd"))

End Sub

大概就是这样,FormEvents_Loading事件中代码是微软的Sample,其实就是给一个Textbox赋值,但是运行时候会出现错误
blues_zhao_yang 2008-12-04
  • 打赏
  • 举报
回复
关于XPathNavigator我不知道,无法给你帮助
只是提醒你如果要把这段代码
public XPathNavigator _xPathNav
{
get { return this.CreateNavigator(); }
}
加进去的话,要先翻译成VB的写法。
你最好把出错的代码贴出来。
geng3stone 2008-12-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blues_zhao_yang 的回复:]
public XPathNavigator _xPathNav
{
get { return this.CreateNavigator(); }
}
这个是C#的写法吧??你到底是VB程序还是C#程序??
一个工程里不能这样嵌套吧??
[/Quote]

infopath表单的默认编程语言是VB...我是直接在表单.vb文件中写代码的
那么敢问这位老兄在VB程序中如何声明XPathNavigator呢?一定需要单独声明么?
blues_zhao_yang 2008-12-04
  • 打赏
  • 举报
回复
public XPathNavigator _xPathNav
{
get { return this.CreateNavigator(); }
}
这个是C#的写法吧??你到底是VB程序还是C#程序??
一个工程里不能这样嵌套吧??
geng3stone 2008-12-04
  • 打赏
  • 举报
回复
自己顶一下,大家要帮忙呀。。。
geng3stone 2008-12-04
  • 打赏
  • 举报
回复
就是不知道哪个没有声明:
比如很简单的
dim target1 as XPathNavigator().SelectSingleNode("/my:myfields/my:allday",NamespaceManager)

判断这个Checkbox是否选中

if target1.value = true then
。。。。。
到这里就报错了
blues_zhao_yang 2008-12-04
  • 打赏
  • 举报
回复
System.NullReferenceException: 未将对象引用设置到对象的实例
是这样的提示吗?

这种错误多半是没有将对象实例化引起的
看看你引用的变量里有没有需要New关键字实例化的地方
有些变量必须New以后才可以使用。
geng3stone 2008-12-04
  • 打赏
  • 举报
回复
谢谢咯
不过比如说我要判断Checkbox的值是否为True
但是好像XML里面这个xpathnavigator没有Checked这个属性,只有Value属性
if target1.value = true then
......
end if

这样就会报之前的错误
blues_zhao_yang 2008-12-04
  • 打赏
  • 举报
回复
说错了

Checkbox的值是:Checkbox.Checked
DateTimePicker的值是:DateTimePicker.Value
blues_zhao_yang 2008-12-04
  • 打赏
  • 举报
回复
-_-!
你的代码我没看懂,不好意思

Checkbox的值:Checkbox.Value
更改日期可以用DateTimePicker控件,把控件的值赋给一个DateTime类型的变量
geng3stone 2008-12-04
  • 打赏
  • 举报
回复
还有请教一下,如何取得Checkbox的值
还有就是如何更改一个日期型数据的值。。。
都是在Infopath里面操作~~
tinalucky 2008-12-03
  • 打赏
  • 举报
回复
?没人?帮楼主顶一个!
源码直接下载地址: https://pan.quark.cn/s/1c143f32ee83 华为作为全球领先的通信设备供应商,其产品系列广泛涉及各类网络设备,其中包括我们接下来要探讨的上网卡产品。华为上网卡驱动程序是一种专门为华为品牌旗下多种型号上网卡开发的软件模块,其主要功能在于保障这些设备与计算机操作系统的无缝对接。涉及的型号涵盖EC8189、EC226、EC169C、EC360、EC1260、EC1261、EC189、EC122、EC150以及EC168,这些均是由华为公司推出的移动宽带调制解调器,旨在通过移动网络实现便捷的互联网接入服务。驱动程序在计算机系统中的地位举足轻重,它充当了硬件设备与操作系统之间的媒介,负责对硬件设备发出的指令进行解读和执行,并将操作系统的指令传递给硬件设备。华为上网卡驱动程序的及时更新和精准安装是保障设备稳定运作和性能达到最优的关键因素。"天翼宽带安装程序V1.3.3.exe"是由中国电信提供的一个整合性软件包,内含华为上网卡的驱动程序及配套的管理工具。用户可借助此安装程序来执行华为上网卡的相关驱动安装及更新,同步享受中国电信的3G或4G网络服务。版本标识V1.3.3代表软件经过迭代优化,通常包含了对错误的修正、性能的改善以及新功能的引入。 "SetupInfo.xml"作为安装程序的配置文档,其中收录了安装流程中的各项设定和元数据信息,例如安装流程、文件定位、依赖条件等。它是安装程序在执行时参照和遵循的纲领,旨在确保安装流程按既定方案进行。文件名"CT_HW_EVDO_Driver"或许指向华为的EVDO(Evolution-Data Optimized)驱动程序,EVDO是一种3G无线通信规范,具备高速数据传输的特性。该驱动可...
内容概要:本文围绕【博士论文复现】基于小信号扫频辨识的光伏并网逆变器正负序交互稳定性分析展开,结合Matlab代码与Simulink仿真实现,系统研究了光伏并网逆变器在弱电网环境下的正负序阻抗建模与交互稳定性问题。重点采用小信号扫频法进行系统辨识,获取逆变器的正负序阻抗特性,并通过奈奎斯特稳定判据等方法分析其在不同电网强度下的稳定性表现。文中详细阐述了扫频激励信号的设计原理、频域响应数据的提取与处理流程、阻抗模型的拟合与验证方法等关键技术环节,实现了对逆变器在复杂电网条件下动态交互行为的精确刻画。该研究不仅深入揭示了新能源并网系统中潜在的宽频振荡机理,也为提升系统稳定性、优化控制器设计提供了坚实的理论依据和有效的技术手段。; 适合人群:具备电力电子、自动控制及电力系统基础知识,从事新能源并网、电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握基于小信号扫频法的电力电子装置阻抗建模方法;② 深入理解光伏并网逆变器在弱电网下的正负序交互稳定性机理;③ 学习并复现高水平博士论文中的核心仿真技术,提升科研实践能力;④ 为实际工程中新能源并网系统的稳定性分析、振荡问题诊断与控制器优化设计提供理论支持和技术参考。; 阅读建议:学习者应结合提供的Matlab代码与Simulink模型,深入理解扫频辨识的原理与实现步骤,重点关注锁相环、电流控制环等关键模块对系统阻抗特性的影响,并尝试改变系统参数以观察稳定性变化,从而加深对理论知识的掌握。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 OPC(OLE for Process Control)是由微软推出的一种应用于工业自动化场景下的数据交换规范,其目的是使多样化的自动化装置与软件平台之间能够实现信息互通。在本项研究中,我们集中探讨的是一个运用C#语言构建的完整OPC客户端的源代码实现。该客户端具备与OPC服务器建立连接、获取或设置数据的能力,从而促成设备间的协同工作。鉴于C#是.NET框架的核心编程语言,并且拥有丰富的类库资源及强大的面向对象支持,它特别适合用于开发此类工业环境的应用程序。接下来将针对OPC客户端源代码中可能涉及的核心技术要点进行详尽的阐述: 1. **OPC Foundation .NET库**:为了在C#环境下实现OPC通信功能,开发人员通常会选择采用OPC Foundation提供的.NET库,例如OPC-UA .NET Standard或OPC Classic .NET。这些库提供了操作OPC服务器的必要API,涵盖了建立连接、遍历服务器节点、读取与写入数据等一系列操作。 2. **OPC连接配置**:客户端在运行前必须先与OPC服务器建立通信通道。这一过程通常需要配置服务器的位置信息、身份验证凭证(包括用户名和密码)以及连接的详细参数。在源代码中,可能会包含一个`Connect()`方法来处理这些连接细节。 3. **数据项订阅机制**:OPC客户端通过向服务器订阅数据项来实时获取数据更新。在订阅阶段,客户端会指定需要监控的数据项的唯一标识,并设定当数据发生变化时触发的回调函数。在C#编程语言中,这一过程可能通过`AddSubscription()`和`AddItem()`方法来完...

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧