( при условии MS SQL Server )
Сервер MS SQL не поддерживает перегрузку процедур (как в Oracle), но поддерживает параметры ввода и вывода, такие как:
create procedure foo1 (
@param bigint
, @id bigint out
, @name varchar(50) out
)as
select
@id = fbt.id
,@name = fbt.name
from
footballteam fbt
where fbt.id =@param
@ id и @name должны быть переданы как выходные параметры нулевого значения правильного типа. После выполнения (cmd.executeNonQuery) вы можете проверить объект команды, чтобы получить новые значения параметров.
Я не уверен, что правильно читаю ваш вопрос, но если да, то это должно получить то, что вы хотите ..
* Добавление лучшего примера кода после вопроса *
//_assumes the following using statements at the top of code file:_
//using System.Data;
//using System.Data.SqlClient;
public string getTeam(int CityID)
{
string name;
using (var cmd = new SqlCommand("foo1",new SqlConnection("myConnectionStringGoesHere")))
{
cmd.Parameters.Add(new SqlParameter("@param", CityID));
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.BigInt){Direction=ParameterDirection.Output});
cmd.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar,50) { Direction = ParameterDirection.Output });
cmd.Connection.Open();
cmd.ExecuteNonQuery();
name = cmd.Parameters["@name"].Value.ToString();
cmd.Connection.Close();
}
return name;
}