I have c# code to execute query on database. Here is my code.
internal string ExcuteQuery(string query, Type type, out int totalCount, out TimeSpan second)
{
using (var dbContextTransaction = Database.BeginTransaction())
{
try
{
var index2 = query.LastIndexOf("limit ", StringComparison.OrdinalIgnoreCase);
var isLastLimitNotInBetween = query.Length - 20;
if (query.IndexOf(") as data ", StringComparison.OrdinalIgnoreCase) == -1)
{
if (index2 != -1 && index2 > isLastLimitNotInBetween)
{
query = query.Insert(index2, "\n) as data ");
}
else
{
query = query.Insert(query.Length, "\n) as data ");
}
}
if (query.Contains("***final_output_query_start***"))
{
var index =
query.IndexOf("***final_output_query_start***", StringComparison.OrdinalIgnoreCase) +
"***final_output_query_start*** ".Length;
query = query.Insert(index, Environment.NewLine + " select SQL_CALC_FOUND_ROWS * from( ");
}
else
{
query = Environment.NewLine + " select SQL_CALC_FOUND_ROWS * from( " + query;
}
Watch.Start();
var data = Database.SqlQuery(type, query);
// need to do here becuase of the execution flow manage
var jsonString = JsonConvert.SerializeObject(data, Formatting.None,
new IsoDateTimeConverter {DateTimeFormat = Constants.DateTimeFormat});
totalCount = Database.SqlQuery<int>("SELECT FOUND_ROWS();").First();
dbContextTransaction.Commit();
Watch.Stop();
second = Watch.Elapsed;
Watch.Reset();
return jsonString;
}
catch (Exception exception)
{
ElmahLogger.Log(exception, "LM api");
dbContextTransaction.Rollback();
throw;
}
}
}
But Now I want to execute Mysql Procedure
with the same code. How can I do it?
I tried passing "call myPrcName()"
in query
variable.
but giving error of
"Invalid query"
how do I achieve this?`