繁体   English   中英

SQL无效的对象名称“ AddressType”

[英]SQL Invalid Object Name 'AddressType'

当我尝试从VS调用SQL getColumnNames存储过程时,在VS 2008 C#方法中出现上述错误。 该SP接受一个输入参数,表名,并可以从SSMS成功工作。 当前,我正在为其选择AdventureWorks AddressType表,以从该表中提取列名称。 我可以从服务器资源管理器/数据连接中看到VS中的AdventureWorks表。 而且,我在服务器资源管理器中看到了AddressType表和getColumnNames SP。

但是我仍然收到上面列出的错误。 这是我用来执行此操作的C#代码段:

公共静态数据表DisplayTableColumns(字符串tt){SqlDataReader dr = null; 字符串TableName = tt; 字符串connString =“数据源= .; AttachDbFilename = \\” C:\\ Program Files \\ Microsoft SQL Server \\ MSSQL10.MSSQLSERVER \\ MSSQL \\ DATA \\ AdventureWorks_Data.mdf \\“;初始目录= AdventureWorks;集成安全性= True;连接超时= 30; User Instance = False“; 字符串错误 SqlConnection conn2 =新的SqlConnection(connString); SqlCommand cmd = conn2.CreateCommand();

    try
    {
        cmd.CommandText = "dbo.getColumnNames";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = conn2;
        SqlParameter parm = new SqlParameter("@TableName", SqlDbType.VarChar);
        parm.Value = TableName;
        parm.Direction = ParameterDirection.Input;
        cmd.Parameters.Add(parm);
        conn2.Open();
        dr = cmd.ExecuteReader();
    }
    catch (Exception ex)
    {
        errorMsg = ex.Message;
    }

当我检查errorMsg时,它表示以下内容:

"   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)\r\n   

在System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔值breakConnection)\\ r \\ n
在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)\\ r \\ n
在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)\\ r \\ n
在System.Data.SqlClient.SqlDataReader.ConsumeMetaData()\\ r \\ n
在System.Data.SqlClient.SqlDataReader.get_MetaData()\\ r \\ n
在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,字符串resetOptionsString)\\ r \\ n
在System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔returnStream,布尔异步)\\ r \\ n
在System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String方法,DbAsyncResult结果)\\ r \\ n
在System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔returnStream,String方法)\\ r \\ n
在System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior行为,String方法)\\ r \\ n在System.Data.SqlClient.SqlCommand.ExecuteReader()\\ r \\ n
在C:\\ Documents and Settings \\ Admin \\ My Documents \\ Visual Studio 2008 \\ Projects \\ AddFileToSQL \\ AddFileToSQL \\ ADONET methods.cs:line 35“中的ADONET_namespace.ADONET_methods.DisplayTableColumns(String tt)

第35行在哪里

dr = cmd.ExecuteReader();

我迅速检查了AdventureWorks数据库,发现表“ AddressType”属于模式“ Person”。 尝试在代码中传递“ Person.AddressType”作为命令参数的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM