首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问我的Server 2008由T4模板错误是返回给我如何获得表?

问无法访问我的Server 2008由T4模板错误是返回给我如何获得表?
EN

Stack Overflow用户
提问于 2011-11-24 09:56:09
回答 1查看 1.7K关注 0票数 1

我想使用T4模板生成一些代码。我正在连接使用"sa“和sa的密码。但我无法连接到远程Server。我正在使用Server 2008。

错误如下:

运行转换时出错: Microsoft.SqlServer.Management.Smo.FailedOperationException: SetParent对数据库'FlyAnt‘失败。-> Microsoft.SqlServer.Management.Common.ConnectionFailureException:未能连接到服务器MROAPPSQL。-> System.Data.SqlClient.SqlException:用户MROTECHNIC\yusuf.karatoprak登录失败。 在System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常时,布尔breakConnection) 在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) 在System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) 在System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo,字符串newPassword,布尔ignoreSniOpenTimeout,TimeoutTimer超时值,SqlConnection owningObject) 在System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo,字符串newPassword,布尔redirectedUserInstance,SqlConnection owningObject,SqlConnectionString connectionOptions,TimeoutTimer超时值) 在System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject,TimeoutTimer超时值,SqlConnectionString connectionOptions,String newPassword,布尔redirectedUserInstance) 在System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,SqlConnectionString connectionOptions,Object providerInfo,String newPassword,SqlConnection owningObject,Boolean ) 在System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,对象poolGroupProviderInfo,DbConnectionPool池,DbConnection owningConnection) 在System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection,DbConnectionPool池,DbConnectionOptions选项) 在System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) 在System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) 在System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 在System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 在System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory) 在System.Data.SqlClient.SqlConnection.Open() 在Microsoft.SqlServer.Management.Common.ConnectionManager.InternalConnect(WindowsIdentity impersonatedIdentity) 在Microsoft.SqlServer.Management.Common.ConnectionManager.Connect() -内部异常堆栈跟踪结束 在Microsoft.SqlServer.Management.Common.ConnectionManager.Connect() 在Microsoft.SqlServer.Management.Common.ConnectionManager.PoolConnect() 在Microsoft.SqlServer.Management.Common.ConnectionManager.get_ServerVersion() 在Microsoft.SqlServer.Management.Smo.ExecutionManager.GetServerVersion() 在Microsoft.SqlServer.Management.Smo.SqlSmoObject.get_ServerVersion() 在Microsoft.SqlServer.Management.Smo.SqlSmoObject.ValidateParent(SqlSmoObject newParent) 在Microsoft.SqlServer.Management.Smo.SqlSmoObject.SetParentImpl(SqlSmoObject newParent) --内部异常堆栈跟踪的结束--在Microsoft.SqlServer.Management.Smo.SqlSmoObject.SetParentImpl(SqlSmoObject newParent) 在Microsoft.SqlServer.Management.Smo.Database..ctor(Server服务器上,字符串名) 在Microsoft.VisualStudio.TextTemplating3B02A40A7B5CFF5BC85C47D46E8EE44A.GeneratedTextTransformation.CodeGenerator.RunCore() 在T4Toolbox.Generator.Run() 在Microsoft.VisualStudio.TextTemplating3B02A40A7B5CFF5BC85C47D46E8EE44A.GeneratedTextTransformation.TransformText() 在Microsoft.VisualStudio.TextTemplating.TransformationRunner.RunTransformation(TemplateProcessingSession会话中,字符串源、ITextTemplatingEngineHost主机、字符串和结果)

我的代码是:

代码语言:javascript
复制
<#@ template language="C#"#>
<#@ assembly name="Microsoft.SqlServer.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" #>
<#@ assembly name="Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" #>
<#@ assembly name="Microsoft.SqlServer.Management.Sdk.sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" #>
<#@ import namespace="Microsoft.SqlServer.Management.Smo" #>
<#@ import namespace="Microsoft.SqlServer.Management.Common" #>
<#@ assembly name="System.Xml"#>


<#@ import namespace="System.Reflection"#>


   <#+
    public class CodeTemplate : Template
    {
        public string DatabaseName;
        public string ServerName;
        public string TableName;

        public override string TransformText()
        {
            Server server = new Server(ServerName);
                server.ConnectionContext.LoginSecure = false;

                server.ConnectionContext.Login = "sa";
                server.ConnectionContext.Password = "123456";
            server.ConnectionContext.Connect();
            Database database = new Database(server, DatabaseName);
            Table table = new Table(database, TableName);
            table.Refresh();

                string DataType= string.Empty;
            WriteLine("using System;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\n");

            WriteLine("namespace MyCustomEntities\n{");

            WriteLine("//Select");
                WriteLine("\tpublic partial class My" +table.Name+ "\n\t{");
            GenerateProperties(table);
                   //output the contructor
            WriteLine("\n\t\tpublic My" + table.Name + "()\n\t\t{\n\t\t//constructor\n\t\t}" );

            //end class
            WriteLine("\t}");
              WriteLine("//Update Delete Save");
                WriteLine("\tpublic partial class My" +table.Name+ "\n\t{");

                WriteLine("\t}");
                WriteLine("}");
            return this.GenerationEnvironment.ToString();
          }

        protected void GenerateProperties( Table table)
        {
                 foreach (Column  column in table.Columns)
                {
                    switch(column.DataType.Name)
                    {
                        case "nvarchar":
                        case "varchar":
                        case "nchar":
                        case "char":
                            WriteLine("\t\tpublic string "+column.Name+"{ get; set;}");
                            break;
                        case "int":
                        case "smallint":
                        case "bigint":
                            WriteLine("\t\tpublic int "+column.Name+" { get; set;}");
                            break;
                        case "datetime":
                            WriteLine("\t\tpublic DateTime "+column.Name+" { get; set;}");
                            break;
                        case "image":
                            WriteLine("\t\tpublic byte[] "+column.Name+" { get; set;}");
                            break;
                        case "bit":
                            WriteLine("\t\tpublic bool "+column.Name+" { get; set;}");
                            break;
                    }
            }
        }
    }

   #>

我的连接代码:

代码语言:javascript
复制
<#@ template language="C#" hostspecific="True"  #>
<#@ assembly name="Microsoft.SqlServer.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" #>
<#@ assembly name="Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" #>
<#@ assembly name="Microsoft.SqlServer.Management.Sdk.sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" #>
<#@ import namespace="Microsoft.SqlServer.Management.Smo" #>
<#@ import namespace="Microsoft.SqlServer.Management.Common" #>
<#@ assembly name="System.Xml"#>
<#@ output extension="txt" #>
<#@ import namespace="System.Reflection"#>

<#@ include file="T4Toolbox.tt" #> 
<#@ include file="CodeGenerator.tt" #> 

<# 
    CodeGenerator gen = new CodeGenerator();

    gen.ServerName="MYSQLSERVER";
    gen.DatabaseName="FlyAnt";
    gen.Run();


#>
EN

回答 1

Stack Overflow用户

发布于 2011-11-24 10:16:28

异常消息声明您试图使用帐户登录,该帐户是正在运行的进程的标识

System.Data.SqlClient.SqlException:用户“MROTECHNIC\yusuf.karatoprak”登录失败

如果您查看堆栈跟踪,您会发现失败的连接尝试实际上起源于以Server对象为参数的数据库类的构造函数

代码语言:javascript
复制
at Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
[...]
at Microsoft.SqServer.Management.Smo.Database..ctor(Server server, String name)
[...]
at T4Toolbox.Generator.Run()

T4工具箱似乎也开始了这一生成过程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8255120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档