Pregunta

Estoy recibiendo el error anterior en mi VS 2008 el método C # cuando trato de invocar las getColumnNames SQL procedimiento almacenado desde VS. Este SP acepta un parámetro de entrada, el nombre de la tabla, y trabaja con éxito de SSMS. Actualmente estoy seleccionando la tabla AdventureWorks AddressType para que se tire de los nombres de las columnas de esta tabla. Puedo ver teh tabla AdventureWorks disponible en VS de mi conexión Explorador de servidores / Datos. Y veo tanto la tabla AddressType y getColumnNames SP muestra en el Explorador de servidores.

Pero todavía estoy recibiendo este error enumerados anteriormente. Aquí está el código C # fragmento de código que utilizo para ejecutar esta:

DisplayTableColumns DataTable estáticos públicos (cadena tt)     {         SqlDataReader dr = null;         string TableName = tt;         CONNSTRING cadena = "Fuente de Datos = .; AttachDBFileName = \" C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorks_Data.mdf \ "; Initial Catalog = AdventureWorks; Integrated Security = true; Connect Timeout = 30; la instancia de usuario = FALSE ";         errorMsg cadena;         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;
    }

Y cuando examino la errorMsg que dice lo siguiente:

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

a System.Data.SqlClient.SqlInternalConnection.OnError (excepción SqlException, Boolean breakConnection) \ r \ n
en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj) \ r \ n
en System.Data.SqlClient.TdsParser.Run (runBehavior RunBehavior, SqlCommand cmdHandler, SqlDataReader corriente de datos, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) \ r \ n
en System.Data.SqlClient.SqlDataReader.ConsumeMetaData () \ r \ n
en System.Data.SqlClient.SqlDataReader.get_MetaData () \ r \ n
en System.Data.SqlClient.SqlCommand.FinishExecuteReader (ds SqlDataReader, runBehavior runBehavior, Cadena resetOptionsString) \ r \ n
en System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, runBehavior runBehavior, Boolean returnStream, Boolean asíncrono) \ r \ n
en System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, runBehavior RunBehavior, Boolean returnStream, método String, resultado DbAsyncResult) \ r \ n
en System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, runBehavior RunBehavior, Boolean returnStream, método String) \ r \ n
en System.Data.SqlClient.SqlCommand.ExecuteReader (comportamiento CommandBehavior, método String) \ r \ n en System.Data.SqlClient.SqlCommand.ExecuteReader () \ r \ n
en ADONET_namespace.ADONET_methods.DisplayTableColumns (String tt) en C: \ Documents and Settings \ Administrador \ Mis documentos \ Visual Studio 2008 \ Projects \ AddFileToSQL \ AddFileToSQL \ ADONET methods.cs: línea 35"

donde la línea 35 es

  

dr = cmd.ExecuteReader ();

¿Fue útil?

Solución

Me registraron enseguida base de datos AdventureWorks y ver que la tabla "AddressType" pertenece al esquema de "Persona". Trate de pasar "Person.AddressType" como el valor del valor del parámetro de comando en el código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top