Вы можете использовать свой вариант хранимой процедуры.
И если вы используете ADO.NET и хотите получить возвращаемое значение, попробуйте следующее:
SqlConnection con = new SqlConnection(@"Data Source=localhost\***;Initial Catalog=***;Integrated Security=True;Persist Security Info=False;");
con.Open();
SqlCommand cmd = new SqlCommand("GetQuestionIDbyTekst", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("@Tekst", System.Data.SqlDbType.NVarChar).Value = "eee";
SqlParameter returnPar = new SqlParameter();
returnPar.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(retturnPar);
cmd.ExecuteScalar();
var result = returnPar.Value;
Если вы используете Entity Framework, вы можете использовать этот вариант:
public static int GetQuestionIDbyTekst(string question)
{
using (var context = new EfDbContext())
{
var test = new SqlParameter("@Tekst", question);
var resultParam = new SqlParameter("@result", SqlDbType.Int);
resultParam.Direction = ParameterDirection.Output;
context.Database.ExecuteSqlCommand("exec @result = [dbo].[testProc] @Tekst", resultParam, test);
return (int)resultParam.Value;
}
}
Хотя этот код может ответьте на вопрос, было бы лучше включить какой-то контекст, объяснить, как он работает, и описать, когда его использовать. Ответы только на код не полезны в долгосрочной перспективе. – ryanyuyu