DataTable出错

时间:2015-07-10 14:28:22

标签: vb.net visual-studio-2013 t4

我有这个错误>>>编译转换:类型' DataTable'没有定义。

这些是我的集会

<#@ template debug="true" hostspecific="true" language="VB" #>
<#@ import namespace="System.Diagnostics" #>
<#@ assembly name="System.Data" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".vb" #>

...以及代码发生的部分

Imports project.Entities
<#  
    Dim connectionString As String = "Data Source=PC101\TEST;Initial Catalog=MyDatabase;Integrated Security=True;"
    Dim objTabla As String
    Dim conjuntoDatos As String = objTabla & "Set"
    Dim objContext as String = "context" & objTabla

    Using connection As New SqlConnection(connectionString)
        connection.Open()

        System.Diagnostics.Debugger.Break
        Dim mtable As DataTable = connection.GetSchema("Tables")

        For liRows As Integer = 0 To mtable.Rows.Count - 1
#> 
Public Sub New()
    context = New <#=objContext #>
    context.Configuration.ProxyCreationEnabled = False
End Sub

1 个答案:

答案 0 :(得分:0)

所以你拥有的代码片段有很多错误,using语句缺少一个结尾使用,for缺少next,以及&#34; objTabla&#34;变量在初始化之前使用。在我修复了所有我发现你需要添加对System.Xml程序集的引用之后。以下是应该有效的完整模板:

<#@ template language="VB" hostspecific="true" debug="False" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.Xml" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="System.Text" #>
Imports project.Entities
<#  
    Dim connectionString As String = "Data Source=PC101\TEST;Initial Catalog=MyDatabase;Integrated Security=True;"
    Dim objTabla As String = ""
    Dim conjuntoDatos As String = objTabla & "Set"
    Dim objContext as String = "context" & objTabla

    Using connection As New SqlConnection(connectionString)
        connection.Open()

        System.Diagnostics.Debugger.Break
        Dim mtable As DataTable = connection.GetSchema("Tables")

        For liRows As Integer = 0 To mtable.Rows.Count - 1

#> 
Public Sub New()
    context = New <#=objContext #>
    context.Configuration.ProxyCreationEnabled = False
End Sub
<# 
    next

    end using
 #>

如果您对我如何解决这个问题感兴趣,我使用扩展程序T4 Awesome来调试和测试您的模板。完全免责声明,我使用的功能是完整版本,需要花钱(但你可以免费试用14天)。您可以使用免费社区版本,它会告诉您相同的事情,但是以不太友好的方式,您将不得不在vs输出窗口中查看原始日志以获取答案。