SQL無効なオブジェクト名「AddressTypeに」
-
24-09-2019 - |
質問
私は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」を渡してみます。