我收到上述错误在我的VS 2008的C#方法,当我尝试调用SQL getColumnNames从VS.存储过程该SP接受一个输入参数,表名,并从SSMS成功的作品。目前,我选择了AdventureWorks地址类型表,它从该表中拉列名。我可以看到在VS可德的AdventureWorks表从我的服务器资源管理器/数据连接。我看到两个地址类型表和getColumnNames SP在服务器资源管理器显示。

但我仍然得到上面列出的这个错误。下面是C#代码段我用来执行这样的:

公共静态数据表DisplayTableColumns(串TT)     {         SqlDataReader的DR = NULL;         串表名= TT;         字符串CONNSTRING = “数据源=; AttachDbFilename = \” C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorks_Data.mdf \“;初始目录= AdventureWorks的;集成安全性= TRUE;连接超时= 30;用户实例= FALSE“;         串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,点击 在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj个)\ r \ n,点击 在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand的cmdHandler,SqlDataReader的数据流,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,布尔returnStream,字符串方法,DbAsyncResult结果)\ r \ n,点击 在System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔returnStream,字符串方法个)\ r \ n,点击 在System.Data.SqlClient.SqlCommand.ExecuteReader(的CommandBehavior行为,字符串方法个)\ r \ n在System.Data.SqlClient.SqlCommand.ExecuteReader(个)\ r \ n,点击 在ADONET_namespace.ADONET_methods.DisplayTableColumns(字符串TT)在C:\ Documents和Settings \管理员\我的文档\视觉工作室2008 \项目\ AddFileToSQL \ AddFileToSQL \ ADONET methods.cs:线35"

其中线35是

  

DR = cmd.ExecuteReader();

有帮助吗?

解决方案

我赶紧检查AdventureWorks数据库,并看到表“地址类型”属于模式的“人”。尝试传递“Person.AddressType”作为代码的命令参数的值的值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top