Question

Je reçois l'erreur ci-dessus dans ma méthode VS 2008 C # lorsque je tente d'invoquer les getColumnNames SQL procédure stockée de VS. Ce SP accepte un paramètre d'entrée, le nom de la table, et fonctionne avec succès à partir SSMS. Actuellement, je suis sélectionné la table AdventureWorks AddressType pour elle de tirer les noms de colonnes de ce tableau. Je peux voir tableau Teh AdventureWorks disponible dans VS de mon explorateur de serveur / Connexion. Et je vois aussi bien la table AddressType et getColumnNames SP montrant dans l'Explorateur de serveurs.

Mais je reçois toujours cette erreur ci-dessus. Voici l'extrait de code C # Je l'utilise pour exécuter ceci:

DataTable public static DisplayTableColumns (string tt)     {         SqlDataReader dr = null;         string TableName = tt;         chaîne connString = "Data Source = .; AttachDbFilename = \" C: \ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorks_Data.mdf \ "; Initial Catalog = AdventureWorks; Integrated Security = True; Connect Timeout = 30; instance utilisateur = False ";         errorMsg chaîne;         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;
    }

Et quand je l'examinerai errorMsg il est dit ce qui suit:

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

à System.Data.SqlClient.SqlInternalConnection.OnError (exception de SqlException, Boolean 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, String resetOptionsString) \ r \ n
à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, runBehavior RunBehavior, Boolean returnStream, async Boolean) \ r \ n
à System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, runBehavior RunBehavior, Boolean returnStream, méthode String, résultat DbAsyncResult) \ r \ n
à System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, runBehavior RunBehavior, Boolean returnStream, méthode String) \ r \ n
à System.Data.SqlClient.SqlCommand.ExecuteReader (Comportement CommandBehavior, méthode String) \ r \ n à System.Data.SqlClient.SqlCommand.ExecuteReader () \ r \ n
à ADONET_namespace.ADONET_methods.DisplayTableColumns (String tt) dans C: \ Documents and Settings \ Admin \ Mes documents \ Visual Studio 2008 \ Projects \ AddFileToSQL \ AddFileToSQL \ ADONET methods.cs: ligne 35"

Si la ligne 35 est

  

dr = cmd.ExecuteReader ();

Était-ce utile?

La solution

J'ai vérifié rapidement la base de données AdventureWorks et voir que la table « AddressType » appartient au schéma « Personne ». Essayez passant « Person.AddressType » comme la valeur de la valeur du paramètre de commande dans le code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top