У меня есть функция, в которой я отправляю два запроса в базу данных SQL Server; однако по второму запросу я получаю SqlException
, а параметр @mpe
отсутствует. Если я попытаюсь установить постоянное значение 0
в конструкторе SqlParameter
.
protected static string GetX(int mpe, string xsection, string xkey)
{
var xSetup = App.Current.Db.GetType<Data.CachedTypes.XSetup>(
"where mpehotel=@mpe and xsection=@xsection and xkey=@xkey",
new System.Data.SqlClient.SqlParameter("@mpe", mpe),
new System.Data.SqlClient.SqlParameter("@xsection", xsection),
new System.Data.SqlClient.SqlParameter("@xkey", xkey));
if (mpe > 0 && xSetup == null)
{
// Fallback mechanism. Always tries to get the default for all MPEs.
xSetup = App.Current.Db.GetType<Data.CachedTypes.XSetup>(
"where mpehotel=@mpe and xsection=@xsection and xkey=@xkey",
new System.Data.SqlClient.SqlParameter("@mpe", 0), <-- THIS FAILES!!
new System.Data.SqlClient.SqlParameter("@xsection", xsection),
new System.Data.SqlClient.SqlParameter("@xkey", xkey));
Однако если я извлеку постоянное значение 0
в локальное значение int xmpe = 0
и передам его конструктору, SQL-запрос выполнится, как и ожидалось, и будет получен результат. Может кто-нибудь объяснить, почему это происходит?