2011-06-30 13 views
0

私はasp.netサイトのストアドプロシージャをC#で呼び出そうとしています。私はSqlCommandクラスを使用してExecuteQuery()を呼び出しています。戻り値は-1ですか?SQL Server 2005のC#でexecutequeryの戻り値をチェックする方法は?

ストアドプロシージャは機能し、SQL Management Studioでテストしました。どのようにすればより詳細なエラー記述を得ることができますか?

+0

を返す場合は、ストアドプロシージャからエラーメッセージ/エラー番号をキャプチャすることができます。このように

string str; int number; using (System.Data.SqlClient.SqlConnection con = new SqlConnection("YourConnection string")) { con.Open(); SqlCommand cmd = new SqlCommand(); string expression = "Parameter value"; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Your Stored Procedure"; cmd.Parameters.Add("Your Parameter Name", SqlDbType.VarChar).Value = expression; cmd.Connection = con; using (IDataReader dr = cmd.ExecuteReader()) { if (dr.Read()) { str = dr["Message"].ToString(); number = Convert.ToInt16(dr["Number"]); } } } 

以下のようにする必要がありError_MessageError_Number

Create Proc Testing As Set NoCount On Set XACT_ABORT ON Begin Try Begin Tran "Your Insert/Update Statement" Select '' as 'Message', 0 as 'Number' Commit Tran End Try Begin Catch Select Error_Message() as 'Message', Error_Number() as 'Number' Rollback Tran End Catch 

を参照してくださいコード? –

+2

System.Data.SqlClient.SqlCommandにExecuteQueryメソッドがありません。 –

+0

http://stackoverflow.com/questions/6210027/c-calling-sql-server-stored-procedure-with-return-value/を参照してください。 6210055#6210055 –

答えて

1

私の最初の呼び出しはSQL Server ProfilerをSQL Server Management Studioで実行することで、データベースに対して実行されているSQLが正確にわかります。 SQL Server Management StudioでSQLを実行すると、SQLエラーかどうかを判断できます。あなたの所見と一緒に投稿してください。

0

お客様のストアドプロシージャは以下のようになります。あなたが投稿することができますあなたのコードは、それがどの

関連する問題