SQL无效的对象名称地址类型“
我得到我的VS 2008的C#方法上面的错误,当我尝试调用SQL getColumnNames从VS.存储过程该SP接受一个输入参数,表名称,并从SSMS成功运行。目前,我正在选择AdventureWorks AddressType表来从该表中提取列名。我可以从我的服务器资源管理器/数据连接中看到VS中可用的AdventureWorks表格。我看到服务器资源管理器中显示的AddressType表和getColumnNames SP。SQL无效的对象名称地址类型“
但我仍然得到上面列出的这个错误。这里是我用来执行此操作的C#代码片段:
public static DataTable DisplayTableColumns(string tt) SqlDataReader dr = null; string TableName = tt; 字符串CONNSTRING = “数据源=; AttachDbFilename = \” C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorks_Data.mdf \“;初始目录= AdventureWorks的;集成安全性= TRUE;连接超时= 30; User Instance = False“; string errorMsg; 的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
在系统.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)\ r \ n
at 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 method,DbAsyncResult result)\ r \ n
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavio r cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String方法)\ r \ n
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior,String method)\ r \ n at System.Data.SqlClient.SqlCommand.ExecuteReader( )\ r \ n
at ADONET_namespace.ADONET_methods.DisplayTableColumns(String tt)in C:\ Documents and Settings \ Admin \ My Documents \ Visual Studio 2008 \ Projects \ AddFileToSQL \ AddFileToSQL \ ADONET methods.cs:line 35“
其中线35是
DR = cmd.ExecuteReader();
我快速检查了AdventureWorks数据库,并看到表“AddressType”属于模式“Person”。尝试传递“Person.AddressType”作为代码中命令参数值的值。
非常棒,Ashish!这是问题! – salvationishere 2010-04-07 21:22:14