题
我有以下代码,它是对大括号和东西给予相关。
<#@ template language="C#" debug="True" hostspecific="True" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.xml" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Data.SqlClient" #>
namespace MyProject.Entities
{
public class
{
<#
string connectionString =
"Server=localhost;Database=GridViewGuy;Trusted_Connection=true";
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
System.Data.DataTable schema = conn.GetSchema("TABLES");
foreach(System.Data.DataRow row in schema.Rows)
{
#>
public class <#= row["TABLE_NAME"].ToString() #>
{
}
}
}
}
任何人都可以发现的问题?
解决方案
为什么不编译的原因是因为你没有对<# #>
标签内的foreach块对应的右大括号。你需要做以下变化:
foreach(System.Data.DataRow row in schema.Rows)
{
#>
public class <#= row["TABLE_NAME"].ToString()#>
{
}
<#
} //this was missing.
#>
此外,请记住,您的代码将创建一个类没有名字,然后嵌套类与表的名称的列表。像这样:
public class
{
public class Table1
{
}
public class Table2
{
}
//... and so on..
}
这可能不是你所要完成的是什么。
其他提示
在第一个块中,在开始代码块
foreach(System.Data.DataRow row in schema.Rows)
{
#>
,但从来没有终止它。下面的某个地方,你需要这样的:
<# } #>
修改 - 它看起来将是右大括号正下方的嵌套类定义
不隶属于 StackOverflow