ストアドプロシージャを見ると、ロジックは「dostuff」の後に。が続くように見えますselect 1 as add_success
。add_success
C#でその値を確認するにはどうすればよいですか?
コード
using (SqlConnection connection = new SqlConnection(_connectionString)) {
using (SqlCommand command = new SqlCommand("<sprocname>", connection)) {
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(<a parameter>); // x10 or so
connection.Open();
var result = command.ExecuteNonQuery();
// result is always -1, despite the sproc doing everything it is supposed to do (modify a few different tables)
ストアドプロシージャ
// Do some stuff including inserts on a few different tables, then
INSERT INTO Table (field1, field2)
VALUES (@Val1, @Val2)
SELECT 1 AS add_success
すべてが正しく実行されているように見えますが、デフォルトのreturn fromExecuteNonQuery
は影響を受ける行であり-1
、すべての操作が正常に完了しているように見えても、常にそうです。
また、という名前の戻り値を持つパラメーターを追加しようとしましたadd_success
が@add_success
、それも機能しないようでした。
ストアドプロシージャからC#に値を返すにはどうすればよいですか?