C# 如何从C中的存储过程中获取所选值?
当查看存储过程时,逻辑似乎是do stuff,然后选择1作为add_success。如何在C中检查add_success值 密码 它似乎在正确地执行所有操作,但ExecuteOnQuery的默认返回值是受影响的行,并且始终为-1,即使所有操作似乎都已成功完成 我还尝试添加一个返回值为add_success和@add_success的参数,但这似乎也不起作用 如何从存储过程向C返回值 您需要使用command.ExecuteScalar。 结果将是结果集中第一个表的第一行。 请尝试SqlCommand.ExecuteScalar方法,而不是ExecuteOnQueryC# 如何从C中的存储过程中获取所选值?,c#,sql-server,stored-procedures,C#,Sql Server,Stored Procedures,当查看存储过程时,逻辑似乎是do stuff,然后选择1作为add_success。如何在C中检查add_success值 密码 它似乎在正确地执行所有操作,但ExecuteOnQuery的默认返回值是受影响的行,并且始终为-1,即使所有操作似乎都已成功完成 我还尝试添加一个返回值为add_success和@add_success的参数,但这似乎也不起作用 如何从存储过程向C返回值 您需要使用command.ExecuteScalar。 结果将是结果集中第一个表的第一行。 请尝试SqlComma
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