質問

私は、VSからのSQL getColumnNamesストアド・プロシージャを起動しようとすると、

私はVS 2008のC#の方法で上記のエラーを取得していますこのSPは、1つの入力パラメータ、テーブル名を受け入れ、SSMSから、正常に動作します。それはこの表から列名をプルするために現在、私は、AdventureWorksのAddressTypeにテーブルを選択しています。私は私のサーバーエクスプローラー/データ接続からVSで利用可能なtehのAdventureWorksのテーブルを見ることができます。そして、私はAddressTypeにテーブルとサーバーエクスプローラに表示getColumnNames SPの両方を参照してください。

しかし、私はまだ上記のこのエラーを取得しています。ここでは、C#のコードは、私がこれを実行するために使用するスニペットます:

のpublic staticのDataTable DisplayTableColumns(文字列TT)     {         SqlDataReaderのは、DR = NULL;         文字列のテーブル名= TT;         文字列CONNSTRING = "データソース= .; AttachDbFilename = \" C:\ Program Files \ MicrosoftのSQLサーバ\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorks_Data.mdf \ ";初期カタログ= AdventureWorksの;統合セキュリティ=真;接続タイムアウト= 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 Cでの(文字列TT)で:\ DocumentsとSettings \管理\マイドキュメント\ Visual Studioの2008 \プロジェクト\ AddFileToSQL \ AddFileToSQL \ ADONET methods.cs:ライン35"

ライン35は、

であります
  

DR = cmd.ExecuteReader();

役に立ちましたか?

解決

私はすぐにAdventureWorksデータベースをチェックし、テーブル「AddressTypeには、」スキーマ「の人」に属していることがわかります。コード内のコマンドパラメータの値の値として「Person.AddressType」を渡してみます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top