当我尝试从 VS 调用 SQL getColumnNames 存储过程时,我在 VS 2008 C# 方法中遇到上述错误。此 SP 接受一个输入参数,即表名,并从 SSMS 成功运行。目前我正在选择 AdventureWorks AddressType 表,以便从该表中提取列名。我可以从我的服务器资源管理器/数据连接中看到 VS 中可用的 AdventureWorks 表。我在服务器资源管理器中看到了 AddressType 表和 getColumnNames SP。
但我仍然收到上面列出的这个错误。这是我用来执行此操作的 C# 代码片段:
公共静态数据表显示表列(字符串 tt){ SqlDataReader dr = null; 字符串表名 = tt; string connString = "Data Source=.;AttachDbFilename=\"C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorks_Data.mdf\";初始目录=AdventureWorks;Integrated Security=True;连接超时= 30;用户实例=假"; 字符串错误消息;SqlConnection conn2 = new 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 n
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String 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, Boolean 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 行在哪里
博士 = cmd.ExecuteReader();