对 COM 组件的调用返回了错误 HRESULT E_FAIL

时间:2022-04-08 18:30:05
急 急 急
就是一个写表的过程
 Sub WriteTable()
        Dim strResult As New StringBuilder()
        Dim pWorkSpace As IWorkspace
        Dim pFWS As IFeatureWorkspace
        Dim pFeatureClass As IFeatureClass
        If Session("editIWorkspace") Is Nothing Then
            pWorkSpace = clsDataEdit.GetAOWorkSpace(g_MapServiesName_Conn, Con_server, Con_Instance, Con_sUserPwd.Split(":")(0), _
                                          Con_sUserPwd.Split(":")(1), Con_Database, Con_Version)
            Session("editIWorkspace") = pWorkSpace
        Else
            pWorkSpace = Session("editIWorkspace")
        End If
        pFWS = pWorkSpace
         pFeatureClass = pFWS.OpenFeatureClass("TD_XZZD")提示对 COM 组件的调用返回了错误 HRESULT E_FAIL
        Dim intIndex As Integer
        Dim dataTabindex As Integer = pFeatureClass.Fields.FieldCount - 5
        intIndex = (dataTabindex + 1) Mod 3  '用来补足列用

        strResult.Append("<table class=record_display cellSpacing=0 cellPadding=0 align=center border=0 width=100%>")
        For i As Integer = 1 To pFeatureClass.Fields.FieldCount - 4
            If (i - 1) Mod 3 = 0 Then
                strResult.Append("<tr class=record_display_data align=left>")
            End If
            strResult.Append("<td noWrap width=80 >")
            strResult.Append(pFeatureClass.Fields.Field(i).AliasName.ToString)
            strResult.Append("</td>")
            strResult.Append("<td noWrap width=80 >")
            strResult.Append(addControl(pFeatureClass.Fields.Field(i).Name.ToString, _
            pFeatureClass.Fields.Field(i).AliasName.ToString, pFeatureClass.Fields.Field(i).VarType))
            If pFeatureClass.Fields.Field(i).Name.ToString = "ZDBH" Or pFeatureClass.Fields.Field(i).Name.ToString = "ZDMC" Then
                strResult.Append("<em style=""color:#FF0000; font-size: 20px;"">*</em>")
            End If
            strResult.Append("</td>")

            strFieldName = strFieldName & "," & pFeatureClass.Fields.Field(i).VarType & "|" & pFeatureClass.Fields.Field(i).Name.ToString
            '根据列的情况补足后面的列
            If i = pFeatureClass.Fields.FieldCount - 4 And intIndex <> 0 Then
                For k As Integer = 1 To 3 - intIndex
                    strResult.Append("<td noWrap width=80>")
                    strResult.Append("&nbsp;")
                    strResult.Append("</td>")
                    strResult.Append("<td noWrap width=80>")
                    strResult.Append("&nbsp;")
                    strResult.Append("</td>")
                Next
            End If
            If i + 1 Mod 3 = 0 Then
                strResult.Append("</tr>")
            End If
        Next
        strResult.Append("</table>")
        strHtml = strResult.ToString
        ' strGLHtml = strGLResult.ToString
    End Sub

7 个解决方案

#1


你有这个类吗
TD_XZZD

#2


数据库中没有这个类,只有一个表,表的名字为“TD_XZZD ”,问题是不是出在这里了?他本应该是一个要素类的名字

#3


        Dim pWorkSpace As IWorkspace 
        Dim pFWS As IFeatureWorkspace 

pFWS = pWorkSpace 
pFeatureClass = pFWS.OpenFeatureClass("TD_XZZD")提示对 COM 组件的调用返回了错误 HRESULT E_FAIL 
pFWS.OpenFeatureClass调用的是IFeatureWorkspace的方法
而pFWS实际上已指向了IWorkspace 

#4


 打开控制面板--->管理工具--->组件服务--->选择计算机--->我的电脑--->右击属性--->选择MSDTC--->选择安全配置--->选择事务管理器通信---->在允许出站跟允许入站那打勾并选择不用验证 
然后重启iis

#5


我也有这个问题,但是我的电脑里没有MSDTC这个设置,我做的是c/s的开发。应该不要IIS吧?

#6


唉,也遇到了这个问题, flash c# 相互调用搞不定,在网上下的 DEMO 可以,我自己写的就不行,郁闷了!

#7


对 COM 组件的调用返回了错误 HRESULT E_FAIL

#1


你有这个类吗
TD_XZZD

#2


数据库中没有这个类,只有一个表,表的名字为“TD_XZZD ”,问题是不是出在这里了?他本应该是一个要素类的名字

#3


        Dim pWorkSpace As IWorkspace 
        Dim pFWS As IFeatureWorkspace 

pFWS = pWorkSpace 
pFeatureClass = pFWS.OpenFeatureClass("TD_XZZD")提示对 COM 组件的调用返回了错误 HRESULT E_FAIL 
pFWS.OpenFeatureClass调用的是IFeatureWorkspace的方法
而pFWS实际上已指向了IWorkspace 

#4


 打开控制面板--->管理工具--->组件服务--->选择计算机--->我的电脑--->右击属性--->选择MSDTC--->选择安全配置--->选择事务管理器通信---->在允许出站跟允许入站那打勾并选择不用验证 
然后重启iis

#5


我也有这个问题,但是我的电脑里没有MSDTC这个设置,我做的是c/s的开发。应该不要IIS吧?

#6


唉,也遇到了这个问题, flash c# 相互调用搞不定,在网上下的 DEMO 可以,我自己写的就不行,郁闷了!

#7


对 COM 组件的调用返回了错误 HRESULT E_FAIL