[英]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.